【发布时间】:2019-04-05 17:08:38
【问题描述】:
我有一个非常简单的数据框,其中 ID 是一个数字序列,并且有多个组,其中开始/结束以开始/结束命名:
ID = c(1:20)
group = c(NA,1,NA,NA,NA,1,NA,NA,NA,2,NA,NA,NA,NA,NA,2,NA,NA,NA,NA) %>% as.factor()
type = c(NA,"start",NA,NA,NA,"stop",NA,NA,NA,"start",NA,NA,NA,NA,NA,"stop",NA,NA,NA,NA) %>% as.factor()
df = data.frame(ID,group,type)
head(df)
ID group type
1 1 <NA> <NA>
2 2 1 start
3 3 <NA> <NA>
4 4 <NA> <NA>
5 5 <NA> <NA>
6 6 1 stop
我想用相邻的值填充组中的 NA,并将数据帧分成开始/停止间隔之间的段:
ID group type
1 2 1 start
2 3 1 <NA>
3 4 1 <NA>
4 5 1 <NA>
5 6 1 stop
6 10 2 start
7 11 2 <NA>
8 12 2 <NA>
9 13 2 <NA>
10 14 2 <NA>
11 15 2 <NA>
12 16 2 stop
如果可以替换组中的缺失值,则可以简单地将数据框简化为组中不是 NA 的值。我看过tidyr::fill(),但找不到好的解决方案。任何建议将不胜感激!
【问题讨论】: