合并的内部是什么,然后与data.table聚合?

时间:2015-07-16 21:07:16

标签: r data.table

我工作中data.table的一个非常常见的用例是合并两个表,然后合并聚合,而不需要进一步的中间结果。

示例:

library(data.table)

set.seed(200)
a.DT <- data.table(k1=2000+sample.int(12, 50, replace = TRUE))[
  , k2 := month.abb[(sample(12, .N, replace = TRUE))]][
    , .(val = rnbinom(1, 50, .8))
    , by = .(k1, k2)]

b.DT <- a.DT[ 
  , .(k3 = LETTERS[7:12]), by = k1][
    , adj1 := 1/rbeta(1, 2, 5)
    , by= k3][
    , adj2 := rbeta(.N, 5, .5)]

setkey(a.DT, k1)
setkey(b.DT, k1)

result.DT <- a.DT[b.DT, allow.cartesian = TRUE][
  , .(weighted = sum(val * adj1 * adj2))
  , by = .(k3, k1, k2)]

我的问题是,如果中间数据。表&#34; a.DT [b.DT,allow.cartesian = TRUE]&#34;首先是全部分配还是直接通过管道传输到以下聚合中?

此致, 亚历山大

0 个答案:

没有答案