创建运行长度索引

时间:2019-06-16 18:26:28

标签: r dplyr

考虑此数据框:

DT <- data.frame(id = rep(1:3, each = 5),
                 seq = c(1,3,3,4,5,1,2,3,4,5,1,1,1,1,1)

我想做的是创建一个名为nth_instance的列,该列应如下所示:

DT <- data.frame(id = rep(1:3, each = 5),
                 seq = c(1,3,3,4,5,1,2,3,4,5,1,1,1,1,1),
                 nth_instance = c(1,2,2,3,4,1,2,3,4,5,1,1,1,1,1))

创建一个列,该列可对seq列的不同出现进行计数,但也要以连续长度的方式进行计数。如果它是dplyr解决方案,那就太好了。

1 个答案:

答案 0 :(得分:2)

您需要数据表。

DT %>% 
  group_by(id) %>% 
  mutate(nth_instance = rleid(seq))