【发布时间】:2016-03-15 19:37:15
【问题描述】:
我想做一个简单的任务,不知道怎么做。 我有一个与此类似的数据框(实际上是 data.table):
date code1
2015-03-01 A
2015-03-02 A
2015-03-03 A
2015-03-01 B
2015-03-02 B
2015-03-03 B
我想要一个新列,其中按 code1 的日期顺序如下:
date code1 order
2015-03-01 A 1
2015-03-02 A 2
2015-03-03 A 3
2015-03-01 B 1
2015-03-02 B 2
2015-03-03 B 3
提前致谢。
【问题讨论】:
-
[datatable] 还是 [data.table]?
-
在基础 R 中,
df$order <- unlist(lapply(split(df, df$code1), function(x){seq_along(x$date)})) -
由“data.table”包转换的数据框
-
或
unlist(tapply(df$date, df$code1, seq_along)) -
...或者更好,以防它们不按顺序排列,
unlist(tapply(df$date, df$code1, rank))
标签: r data.table