Wie ersetze ich NA durch die neueste Nicht-NA nach Gruppe? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Ersetzen Sie fehlende Werte (NA) mit den letzten Nicht-NA nach Gruppe 6 answersch habe eine DF von Personen mit einigen unvollständigen und wiederholten Merkmalen wie folg
name <- c("A", "A", "B", "B", "B", "C", "D", "D")
age <- c(28,NA,NA,NA,NA,NA,53,NA)
birthplace <- c("city1",NA, "city2",NA,NA,NA,NA,NA)
value <- 100:107
df <- data.frame(name,age,birthplace,value)
name age birthplace value
1 A 28 city1 100
2 A NA <NA> 101
3 B NA city2 102
4 B NA <NA> 103
5 B NA <NA> 104
6 C NA <NA> 105
7 D 53 <NA> 106
8 D NA <NA> 107
Da der Wert für row eindeutig ist. Ich möchte jede Zeile mit den folgenden Angaben einer verfügbaren Person vervollständigen:
name age birthplace value
1 A 28 city1 100
2 A 28 city1 101
3 B NA city2 102
4 B NA city2 103
5 B NA city2 104
6 C NA <NA> 105
7 D 53 <NA> 106
8 D 53 <NA> 107
Ich habe versucht, @ zu verwend
library(zoo)
library(dplyr)
df <- df %>% group_by(name) %>% na.locf(na.rm=F)
Aber es funktioniert nicht sehr gut. Irgendeine Idee, die Funktion nach Gruppe zu implementieren?