Ich habe einen Datenrahmen, der nach absteigender Reihenfolge des Datums angeordnet ist.
%Vor%Ich möchte NA-Werte mit vorherigen Werten implizieren (ersetzen) und nach Benutzer-ID gruppiert Falls die erste Zeile einer Benutzer-ID NA hat, dann ersetze sie durch die nächste Gruppe von Werten für diese Benutzer-ID-Gruppe.
Ich versuche dplyr- und zoo-Pakete so zu benutzen ... aber es funktioniert nicht
%Vor%Ich brauche Ergebnis df so:
%Vor% Die Verwendung von zoo::na.locf
direkt auf dem gesamten data.frame würde die NA unabhängig von den Gruppen userID
füllen. Die Gruppierung des Pakets dplyr hat leider keinen Effekt auf na.locf
function, deshalb ging ich mit einem Split:
Was es tut, ist, dass es zuerst die Daten in 3 data.frames aufteilt, dann wende ich einen ersten Imputationsprozess an (nach unten), dann nach oben mit der anonymen Funktion in lapply
und benutze schließlich rbind
die data.frames wieder zusammen. Sie haben die erwartete Ausgabe.
Wenn Sie die @ agenis-Methode mit na.locf()
kombiniert mit purrr
verwenden, können Sie Folgendes tun:
Tags und Links r dplyr zoo missing-data