小编ric*_*lam的帖子

data.table 分组操作的性能

我将首先描述我正在执行的任务。我必须重复计算分组总和,通常为 5 到 10 次。我正在执行分组总和的列中的值随着每次迭代而变化,但我分组所依据的列则不会。下面是一个示例表,其中 w、x 和 y 一起构成分组,z 是将其值求和的列。

DT <- data.table(w = sample(1:10, size  = 1000000, replace = TRUE), 
                 x = sample(1:100, size  = 1000000, replace = TRUE), 
                 y = sample(1:1000, size  = 1000000, replace = TRUE),
                 z = runif(n = 1000000, min = 0, max = 1))

setkey(DT, w, x, y)
Run Code Online (Sandbox Code Playgroud)

我认为我最初的解决方案是最明显的:

DT[, Group_Total := sum(z), keyby = list(w, x, y)]

microbenchmark(DT[, Group_Total := sum(z), keyby = list(w, x, y)])
Unit: milliseconds
min       lq        mean      median    uq …
Run Code Online (Sandbox Code Playgroud)

r data.table

6
推荐指数
1
解决办法
296
查看次数

标签 统计

data.table ×1

r ×1