Ich habe einen Datensatz mit Beobachtungen von mehreren Patienten und deren Diagnosen im Laufe der Zeit. Es gibt 9 verschiedene Dummy-Variablen, von denen jede eine spezifische Diagnose darstellt, die z.B. L40, L41, K50, M05 und so weiter.Letzte Beobachtung von der Gruppe über mehrere Spalten
Wenn in den Dummy-Variablen fehlende Werte vorhanden sind, möchte ich den letzten nicht fehlenden Wert nach Patient übertragen, so dass nach der Diagnose eines Patienten die nachfolgenden Beobachtungen durchlaufen werden.
Ich begann damit und nutzte die na.locf-Funktion aus dem Zoo-Paket.
diagdata <- originaldata[,grep("^patient|^ar|^edatum|^K|^L|^M",colnames(originaldata))]
require(zoo)
require(data.table)
diagnosis <- data.table(diagdata)
diagnosis[,L40:=na.locf(L40),by=patient]
Dies erreicht, was ich suche, aber nur auf der fraglichen Spalte (L40). Gibt es eine Möglichkeit, das Obige auf alle relevanten Diagnose-Spalten anzuwenden, d. H. Spalten, die mit K, L und M beginnen?
Verwenden Sie 'setDT' oder' as.data.table' anstelle von 'data.table()', um von 'dat.frame' an Stelle oder als Kopie zu konvertieren – eddi