小编Kar*_*rol的帖子

R:键应该在data.table中以这种方式运行吗?

我在data.table包中遇到了一些有点不直观的键行为.这是一个例子:

library(data.table)
foo <- data.table(a = c(1:4), b = c(2:5), c = c(3:6), d = c(4:7))
setkey(foo, b)
Run Code Online (Sandbox Code Playgroud)

然后,有一个惊人的结果key():

key(foo[, .(mean(c + d)), by = .(b)]) # result is "b".
key(foo[, .(mean(c + d)), by = .(a)]) # result is "a". (!!)
Run Code Online (Sandbox Code Playgroud)

然后,还有另一个例子可以产生不同的,更合理的结果.

foo <- data.table(a = c(4:1), b = c(2:5), c = c(3:6), d = c(4:7))
setkey(foo, b)
key(foo[, .(mean(c + d)), by = .(b)]) # result is "b".
key(foo[, .(mean(c + d)), by = …
Run Code Online (Sandbox Code Playgroud)

r key data.table

16
推荐指数
1
解决办法
413
查看次数

标签 统计

data.table ×1

key ×1

r ×1