ich folgende data.frame als Beispiel:Aggregate mit na.action = na.pass gibt unerwartete Antwort
d <- data.frame(x=c(1,NA), y=c(2,3))
Ich mag würde die Werte von y durch die Variable x zusammenzufassen. Da es keinen gemeinsamen Wert von x gibt, würde ich erwarten, dass die Aggregation mir nur die ursprüngliche data.frame zurückgibt, wo NA als Gruppe behandelt wird. Aber Aggregation gibt mir die folgenden Ergebnisse.
>aggregate(y ~ x, data=d, FUN=sum)
x y
1 1 2
Ich habe die Dokumentation über das Ändern der Standardaktionen von na.action lesen, aber es scheint nicht zu mir sinnvoll, etwas zu geben.
>aggregate(y ~ x, data=d, FUN=sum, na.action=na.pass)
x y
1 1 2
Was ist los? Ich verstehe nicht, was na.pass in diesem Fall macht. Gibt es eine Option, um zu erreichen, was ich in R will? Jede Hilfe würde sehr geschätzt werden.
Sie sagen, dass Sie einen 'NA' Wert als eine Gruppierungsvariable betrachten? Willst du die "NA" oder nicht? (Es ist nicht klar, weil Sie auch 'na.rm = TRUE' als Teil Ihres Tests verwenden .... – A5C1D2H2I1M1N2O1R2T1
Ja, ich möchte NA als Gruppe. – Sanias
Die Dokumentation sagt" Zeilen mit fehlenden Werten in einem der Variablen werden aus dem Ergebnis weggelassen. "Wenn Sie das nicht möchten, müssen Sie Ihre' by' -Variable neu codieren oder eine andere Funktion für die Aggregation verwenden. – Roland