在R中,如何将data.frame的聚合转换为data.table的聚合?

时间:2013-04-02 14:29:56

标签: r dataframe aggregate data.table

我想知道如何转换aggregate上的data.frame来处理data.table

例如,我有一个名为data.table的{​​{1}}:

mydt

我希望按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) ,那么正确的命令将是:

data.frame

如果我正在处理temp <- aggregate(Value ~ Date, mydt, as.vector)

,那么等效命令是什么?

1 个答案:

答案 0 :(得分:5)

Date分组并使用list(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