考虑此数据框:
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
解决方案,那就太好了。
答案 0 :(得分:2)
您需要数据表。
DT %>%
group_by(id) %>%
mutate(nth_instance = rleid(seq))