鉴于以下数据集:
tmp = data.frame(id = c(1,1,1, 2, 2, 3),
cont_date = c("2015-01-01", "2016-01-01", "2017-01-01", "2017-01-01", "2015-01-01", "2016-01-01"))
library(lubridate)
tmp$cont_date = ymd(tmp$cont_date)
我可能遗漏了一些明显的东西,但我期待以下代码
tbl_df(tmp) %>% group_by(id) %>% arrange(cont_date) %>% mutate(seqnum = 1:length(id))
创建每个记录块的序列号,按ID分组。相反,这就是我得到的:
id cont_date seqnum
1 1 2015-01-01 1
2 2 2015-01-01 2
3 1 2016-01-01 3
4 3 2016-01-01 4
5 1 2017-01-01 5
6 2 2017-01-01 6
我不想要所有记录的序列号,但是对于每个块。看起来group_by
部分被忽略了。
非常感谢任何帮助。