【发布时间】:2017-02-23 17:57:41
【问题描述】:
我有一个按日期降序排列的数据框。
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')
)
我希望用以前的值估算(替换)NA 值 并按用户 ID 分组 如果用户 ID 的第一行有 NA,则替换为该用户 ID 组的下一组值。
我正在尝试使用类似这样的 dplyr 和 zoo 包...但它不起作用
cleanedFUG <- filteredUserGroup %>%
group_by(UserID) %>%
mutate(Age1 = na.locf(Age),
Color1 = na.locf(Color),
Gender1 = na.locf(Gender) )
我需要这样的结果 df:
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
【问题讨论】:
标签: r dplyr missing-data zoo