3

我想知道如何将 on a 转换为aggregate在 adata.frame上工作data.table

例如,我有一个data.tablemydt

Date       ,     Time  , Value
1899-01-01 ,  4:00:00  ,    1
1899-01-01 ,  4:01:00  ,    2
1899-01-01 ,  4:02:00  ,    3
1899-01-01 ,  4:03:00  ,    4
1899-01-01 ,  4:04:00  ,    5
1900-08-22 , 22:00:00  ,  101
1900-08-22 , 22:01:00  ,  102
2013-08-29 ,  4:00:00  , 1000
2013-02-29 ,  4:02:00  , 1001
2013-02-29 ,  4:03:00  , 1002

我想分组Date以产生data.table以下格式:

Date      , Vector(variable length)
1899-02-28, c(1,2,3,4,5)
1900-08-22, c(101,102)
1900-08-22, c(1000,1001,1002)

如果我正在处理 a data.frame,正确的命令是:

temp <- aggregate(Value ~ Date, mydt, as.vector) 

如果我正在处理 a ,等效命令是data.table什么?

4

1 回答 1

5

分组Datelist(Value)在 中使用list以将结果作为列表获取。

dt[, list(Value=list(Value)), by=Date]

#           Date     Value
# 1: 1899-01-01  1,2,3,4,5
# 2: 1900-08-22    101,102
# 3: 2013-08-29       1000
# 4: 2013-02-29  1001,1002
于 2013-04-02T14:34:32.960 回答