【发布时间】:2017-12-19 06:00:37
【问题描述】:
考虑一个按日期列排序的数据框:
df=data.frame(event=1:12,
subject=rep("M325",12),
date=c(rep("2017-11-01",4),rep("2017-11-14",8)))
我想要的是创建第四列,其序列从 1 到下一个唯一日期,序列中的每个元素在每个 i-th 日期重复。例如:
event subject date num
1 1 M325 2017-11-01 1
2 2 M325 2017-11-01 1
3 3 M325 2017-11-01 1
4 4 M325 2017-11-01 1
5 5 M325 2017-11-14 2
6 6 M325 2017-11-14 2
7 7 M325 2017-11-14 2
8 8 M325 2017-11-14 2
9 9 M325 2017-11-14 2
10 10 M325 2017-11-14 2
11 11 M325 2017-11-14 2
12 12 M325 2017-11-14 2
非常感谢在 n 个日期获得此结果的任何建议。
【问题讨论】:
-
尝试
df$num <- cumsum(!duplicated(df$date)),如果它是有序的,如果它是基于“日期”的块,以后可能会再次出现,然后num也发生变化,setDT(df)[, num := rleid(date)] -
@akrun 哇,真快!第一个工作完美!谢谢