Ich versuche zu zeigen, wie viele vollständige Beobachtungen gibt es pro Variabel ID
ohne mit der complete.cases
-Paket oder ein anderes Paket.zählen nicht-NA-Werte und gruppieren nach Variable
Wenn ich na.omit
verwenden, um die NA-Werte herauszufiltern, werde ich alle IDs verlieren, die NULL vollständige Fälle haben könnten.
Am Ende würde ich eine Häufigkeitstabelle mit zwei Spalten wie: ID
und Number of Complete Observations
> length(unique(data$ID))
[1] 332
> head(data)
ID value
1 1 NA
2 1 NA
3 1 NA
4 1 NA
5 1 NA
6 1 NA
> dim(data)
[1] 772087 2
Wenn ich versuche, meine eigene Funktion z
zu schaffen - die Nicht-NA-Werte zählt und dann Anwendung, wenn in dem aggregate()
Funktion, die IDs mit Null vollständige Beobachtungen sind weggelassen. Ich sollte mit 332 Zeilen belassen werden, nicht 323. Wie löst man das mit Basisfunktionen?
z <- function(x){
sum(!is.na(x))
}
aggregate(value ~ ID, data = data , FUN = "z")
> nrow(aggregate(isna ~ ID, data = data , FUN = "z"))
[1] 323
Können Sie Ihre Daten dput()? – mkt
Keine schöne Lösung, aber Sie können alle NA-Werte gleich einer Zahl (z. B. 0 oder 9999999) setzen, die nicht in Ihrer "Wert" -Variable vorhanden ist. Zählen Sie die Anzahl der Beobachtungen ohne diese Zahl in ihrer Zeile. Und dann setzen Sie alle diese Zahlen zurück zu NA. – Marcel10
'complete.cases' ist eine Funktion nicht ein Paket – Sotos