Moje pytanie brzmi mam dataframe m
jak poniżejnapełnienia w NA na podstawie ostatniej wartości non-NA dla każdej grupy w R
y1 =c(rep("A",5),rep("B",5))
y2 = rep(c(1:5),2)
y3 = y2
y3[c(2,7,9)]=NA
m = data.frame(y1,y2,y3)
y1 y2 y3
1 A 1 1
2 A 2 <NA>
3 A 3 3
4 A 4 4
5 A 5 5
6 B 1 1
7 B 2 <NA>
8 B 3 3
9 B 4 <NA>
10 B 5 5
Chcę wypełnić NA podstawie najbliższego non-NA wartość "przed" tą NA. Moje dane wyjściowe powinny wyglądać następująco:
y1 y2 y3 y4
1 A 1 1 1
2 A 2 <NA> 1
3 A 3 3 3
4 A 4 4 4
5 A 5 5 5
6 B 1 1 1
7 B 2 <NA> 1
8 B 3 3 3
9 B 4 <NA> 3
10 B 5 5 5
Czy masz pomysł na wykorzystanie dplyr
do osiągnięcia tego celu?
'locf' nie będzie obsługiwać pozycji brakujących wartości,' nomb' nie zajmie kończyć się brakujące wartości ... jeśli masz grupę wszystko z brakujących wartości, co ani wola praca ... –
Dobra sprawa, ale nie wiemy jeszcze, czy te pojawiają się w kontekście PO, czy nie. Ponieważ mówią "przed", brzmi to tak, jak nie, ale tylko OP może powiedzieć na pewno. Rozwiązanie poniżej (i powiązane) działa na przykładzie OP. Nieco przylegające rozwiązanie użyłoby dwukrotnie 'zoo :: na.locf', zi bez' fromLast'. –