ich eine sehr große Sparse Matrix haben, die wie folgt aussieht: aufeine spärliche Matrix durch eine einzige Säule Aggregieren
client item_1 item_2 item_3.... item_n
a 1 0 0 0
a 0 0 1 0
b 0 1 0 0
b 1 0 0 0
und so ...
Ich möchte die Matrix durch die Client-Spalte aggregieren zu erhalten:
client item_1 item_2 item_3.... item_n
a 1 0 1 0
b 1 1 0 0
habe ich versucht, zurück in eine dichte Matrix zu konvertieren und dann Aggregat, aber in den Speicher Probleme laufen.
Aussehen Meine Daten wie
new("dgCMatrix"
, i = c(0L, 1L, 2L, 3L, 0L, 3L, 2L, 1L)
, p = c(0L, 4L, 6L, 7L, 8L, 8L)
, Dim = 4:5
, Dimnames = list(NULL, c("client", "item_1", "item_2", "item_3", "item_n"
))
, x = c(1, 1, 2, 2, 1, 1, 1, 1)
, factors = list()
)
Versuchen Sie 'aggregate (. ~ Client, df1, sum)' – akrun
oder .. 'mit (d, rowsum (d [-1], Client))'. Aber kannst du bitte etwas klarer über deine Struktur sein? Ist es tatsächlich ein SparseMatrix-Klassenobjekt, da afaik keine Zeichenvariablen haben können – user20650
Ja, es ist eine SparseMatrix, also sind die Clientvariablen 1,2,3 statt a, b, c. Aggregat (. ~ Client, DF1, Summe) funktioniert nicht, weil es eine SparseMatrix ist. – deadasdreams