x1 <- c(1, 2, 3)
x2 <- c("a", "b", "a")
x3 <- as.Date(c(NA, "2016/01/01", NA), "%Y/%m/%d")
df <- data.frame(x1,x2,x3)
wenn ich mich bewerben Aggregat df
:Aggregate von NA-Wert in R
aggregate(x1~x2+x3, df, sum)
Das Ergebnis sieht wie folgt aus, aber ignoriert NA
Werte:
x2 x3 x1
b 2016/01/01 2
Also, was ich brauche, ist zu aggregieren NA
Werte und haben ein Ergebnis wie folgt:
x2 x3 x1
a NA 4
b 2016/01/01 2
Kann mir bitte jemand helfen?
@jogo über dasselbe sagen, aber Sie werden eine benutzerdefinierte Funktion entwerfen müssen ? – agenis
Ich würde nur vorschlagen, 'data.table' oder etwas anderes zu verwenden, das es Ihnen erlauben würde, auch nach' NA'-Werten zu gruppieren. Wie 'Bibliothek (data.table); as.data.table (df) [, Summe (x1), durch =. (x2, x3)] '. – A5C1D2H2I1M1N2O1R2T1
@jogo, ich glaube nicht, dass das funktionieren würde. Ich bin ziemlich sicher, dass Sie noch die "x3" Gruppierungsvariable ändern müssen, so dass es keine "NA" Werte enthält. – A5C1D2H2I1M1N2O1R2T1