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 answers

ch 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?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage