Mam ramkę danych uporządkowaną według malejącej kolejności.Zamień NA na poprzednią lub następną wartość, według grupy, używając dplyr
ps1 = data.frame(userID = c(21,21,21,22,22,22,23,23,23),
color = c(NA,'blue','red','blue',NA,NA,'red',NA,'gold'),
age = c('3yrs','2yrs',NA,NA,'3yrs',NA,NA,'4yrs',NA),
gender = c('F',NA,'M',NA,NA,'F','F',NA,'F')
)
życzę przypisać (wymienić) brak wartości z poprzednich wartości i zgrupowane przez identyfikator użytkownika W przypadku, gdy pierwszy rząd ID użytkownika jest NA następnie zastąpić przez następny zestaw wartości dla tej grupy id_użytkownika.
Próbuję użyć dplyr i zoo pakiety coś takiego ... ale jej nie działa
cleanedFUG <- filteredUserGroup %>%
group_by(UserID) %>%
mutate(Age1 = na.locf(Age),
Color1 = na.locf(Color),
Gender1 = na.locf(Gender))
muszę doprowadzić df tak:
userID color age gender
1 21 blue 3yrs F
2 21 blue 2yrs F
3 21 red 2yrs M
4 22 blue 3yrs F
5 22 blue 3yrs F
6 22 blue 3yrs F
7 23 red 4yrs F
8 23 red 4yrs F
9 23 gold 4yrs F
Zobacz, czy jest to pomocne. [Zastępowanie NA z ostatnią wartością inną niż NA] (http://stackoverflow.com/questions/7735647/replacing-nas-with-latest-non-na-value) lub [zastąp wartość NA wartością grupy] (http : //stackoverflow.com/questions/23583739/replace-na-value-w--group-value) –
@Tarak cześć, jeśli jedna z odpowiedzi rozwiązuje twój problem, nie wahaj się oznaczyć go jako "zaakceptowany", więc inni ludzie też to widzą ... dzięki – agenis