我有一个数据框,按日期的降序排列.
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')
)
Run Code Online (Sandbox Code Playgroud)
我希望将NA值用先前的值归入(替换)并按userID分组如果userID的第一行有NA,则替换为该用户ID组的下一组值.
我正在尝试使用像这样的dplyr和zoo软件包......但它不起作用
cleanedFUG <- filteredUserGroup %>%
group_by(UserID) %>%
mutate(Age1 = na.locf(Age),
Color1 = na.locf(Color),
Gender1 = na.locf(Gender) )
Run Code Online (Sandbox Code Playgroud)
我需要结果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 …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,缺少"SNAP_ID"的值.我想基于前一个非缺失值(lag()?)的序列用浮点值填充缺失值.如果可能的话,我真的想用dplyr实现这个目的.
假设:
目前的数据:
end SNAP_ID
1 2015-06-26 12:59:00 365
2 2015-06-26 13:59:00 366
3 2015-06-27 00:01:00 NA
4 2015-06-27 23:00:00 NA
5 2015-06-28 00:01:00 NA
6 2015-06-28 23:00:00 NA
7 2015-06-29 09:00:00 367
8 2015-06-29 09:59:00 368
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标:
end SNAP_ID
1 2015-06-26 12:59:00 365.0
2 2015-06-26 13:59:00 366.0
3 2015-06-27 00:01:00 366.1
4 2015-06-27 23:00:00 366.2
5 2015-06-28 00:01:00 366.3
6 2015-06-28 23:00:00 366.4
7 2015-06-29 09:00:00 367.0
8 2015-06-29 09:59:00 368.0
Run Code Online (Sandbox Code Playgroud)
作为数据框架:
df <- structure(list(end = structure(c(1435323540, …Run Code Online (Sandbox Code Playgroud) 我想用每月的序列填充 NA。我试着用
fill(dates,seq.Dates(dates,%m+%))
Run Code Online (Sandbox Code Playgroud)
但它没有用。
我目前的日期如下:
dates <- structure(list(dates = structure(c(1L, NA, NA, NA, NA, 2L, NA,
NA, NA, 3L), .Label = c("2019-02-01", "2019-02-05", "2019-02-09"
), class = "factor")), row.names = c(NA, -10L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我想要的输出应该是这样的:
