我有一个如下所示的数据框:
ID Date result
1 1/1/2010 100
1 1/1/2010 200
2 1/1/2011 300
3 1/1/2011 400
3 1/1/2011 500
3 1/1/2011 600
我想在此数据框中包含另一列:
ID Date result Date_num
1 1/1/2010 100 1/1/2010 (1)
1 1/1/2010 200 1/1/2010 (2)
2 1/1/2011 300 1/1/2011 (1)
3 1/1/2011 400 1/1/2011 (1)
3 1/1/2011 500 1/1/2011 (2)
3 1/1/2011 600 1/1/2011 (3)
这一开始看起来很简单,因为R可以快速按ID分组(使用dplyr,table,aggregate等),但R也可以快速将所有内容组合在一起并汇总结果。
第一步是创建一个向量c(1,2,1,1,2,3)
,以正确的顺序保存计数。然后,我可以使用dplyr
mutate
一个新列。但第一步让我有点陷入困境。
我在想:
DF <- DF %>%
group_by(ID) %>%
summarize(length(ID)) %>%
mutate(Date_num = paste(DF$ID, <create a sequence from the previous step?>))
谢谢你的帮助。
答案 0 :(得分:3)
您可以使用row_number()
dplyr
library(dplyr)
DF %>%
group_by(ID) %>%
mutate(Date_num = row_number())