data.table: Summe aller vorhandenen Kombinationen in Tabelle

Ich habe eine data.tableout wie folgt (in Wirklichkeit ist es viel größer):

out <-      code weights group
        1:    2   0.387      1
        2:    1   0.399      1
        3:    2   1.610      1
        4:    3   1.323      2
        5:    2   0.373      2                                            
        6:    1   0.212      2
        7:    3   0.316      3
        8:    2   0.569      3
        9:    1   0.120      3
       10:    1   0.354      3

s hat 3 Gruppen mit unterschiedlichen Codes (Spalte 1). In Gruppe 1 wird der Code 3 nicht angezeigt, während er in der anderen Gruppe angezeigt wird.

Dann möchte ich die Gewichte für jede Kombination aus Gruppe und Code summieren. Ich erreiche dies mit diesem Befehl:

sum.dt <- out[,.(sum(weights)), by=list(code,group)][order(-V1)]

Dies funktioniert gut, hat aber nicht die Kombination Gruppe 1 mit Code 3, da es nicht im @ enthalten isout Tabelle. Ich hätte gerne alle möglichen Kombinationen insum.dt, und wenn die Kombination nicht in der Quelltabelle vorkommt, sollte sie sich zu 0 summieren, was bedeutet, dass die SpalteV1 sollte in dieser Zeile 0 sein.

Hast du eine Idee, wie ich das erreichen könnte?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage