【发布时间】:2012-11-06 23:48:24
【问题描述】:
我有一个包含多列的 data.table,如下所示:
DT <- data.table(date = as.IDate(rep(c("2012-10-17", "2012-10-18", "2012-10-19"), each=10)),
session = c(1,2,3), price = c(10, 11, 12,13,14),
volume = runif(30, min=10, max=1000))
我想提取一个多列表格,其中显示在特定类型的会话中每个价格的交易量 - 每列代表一个日期。
目前,我使用以下方法一次提取一个数据:
DT[session==1,][date=="2012-10-17", sum(volume), by=price]
然后绑定列。
有没有一种方法可以在不将所有单个查询粘在一起的情况下获得最终产品(每列指向特定日期的表)——就像我目前正在做的那样?
谢谢
【问题讨论】:
-
我是误会还是
DT[,sum(volume),by = list(price,date,session)]不行? -
@mnel - 我认为 OP 正在讨论将列(“每列引用特定日期的表”)而不是行绑定在一起。我同样感到困惑。
-
咳咳,是的,绑定列 - 所以你根本不会误解我的意思。我实际上只是想要
DT[ session == 1, sum(volume), by = list(date, price)],并且可以从那里将其剪切成我想要的每个日期的列。请随时回答,以便我接受。 -
查看我的答案 -- 使用
dcast进行整形。
标签: r data.table