Ich habe ein Datenframe mit einer Faktorvariablen und Spalten mit ein paar NA's wie gezeigt.Gruppierung nach einer Variablen, dann Finden des Anteils fehlender Werte für jede Spalte in R
var col1 col2 col3
C 1 NA 1
A NA 1 1
C NA NA NA
A 1 NA 1
B NA 1 1
A 1 1 1
B 1 NA 1
B 1 1 1
C NA NA 1
B NA 1 1
Ich bin auf der Suche nach einer Möglichkeit, die Variablen zu gruppieren und den Anteil der fehlenden Werte für jede Spalte erhalten, die durch die Ebene in ‚var‘ gruppiert. Die Ausgabe sollte wie folgt aussehen:
var col1 col2 col3
A 0.33 0.33 0
B 0.5 0.25 0
C 0.66 1.00 0.33
Jedes Verfahren ist in Ordnung und verschiedene Methoden geschätzt werden würde, aber eine einfache dplyr Methode wäre vorzuziehen. Vielen Dank!
Bearbeiten: Ich bin auf der Suche nach einer Methode, die es mir erlauben würde, dies für mehrere Spalten gleichzeitig zu tun und einen Datenrahmen ähnlich dem oben gezeigten zurückzugeben.
Sagen meine Daten heißt 'df' dann möchte ich tun, um den Anteil der fehlenden für alle Spalten auf einmal zu bekommen, ohne die Namen manuell erneut eingeben zu müssen.
Der folgende Code funktioniert nicht, aber es ist eine allgemeine Vorstellung dessen, was ich erreichen möchte. Vielleicht könnte eine Funktion helfen, aber ich bin mir nicht sicher, wie ich darauf zugehen würde.
df %>% group_by(var) %>% summarise(names(df[,-1]) = sum(is.na(names(df[,-1])))/n())
Wenn ich mehrere Spalten hatte, gibt es einen Weg, ich könnte eine Funktion anwenden, um alle Spalten auf einmal zu senden, ohne es wiederholt eingeben zu müssen – Ricky