相关疑难解决方法(0)

data.table中的.EACHI?

我似乎无法找到关于究竟.EACHI做什么的任何文档data.table.我在文档中看到它的简要提及:

在i和设置中传递这些组时,已知组子集的聚合特别有效by=.EACHI.何时i是data.table,DT[i,j,by=.EACHI]评估连接中每一行j的组.我们称之为每个i的分组.DTi

但是,"群体"在上下文中DT是什么意思?是否由设置的密钥确定的组DT?该组是否每个使用所有列作为键的不同行?我完全理解如何运行类似DT[i,j,by=my_grouping_variable]但是如何.EACHI工作的困惑.有人可以解释一下吗?

performance group-by r data.table

63
推荐指数
1
解决办法
1万
查看次数

为什么在使用重复键加入data.tables时需要allow.cartesian?

我试图在R中的data.table中存在重复键时理解J()查找的逻辑.

这是我尝试过的一个小实验:

library(data.table)
options(stringsAsFactors = FALSE)

x <- data.table(keyVar = c("a", "b", "c", "c"),
            value  = c(  1,   2,   3,   4))
setkey(x, keyVar)

y1 <- data.frame(name = c("d", "c", "a"))
x[J(y1$name), ]
## OK

y2 <- data.frame(name = c("d", "c", "a", "b"))
x[J(y2$name), ]
## Error: see below

x2 <- data.table(keyVar = c("a", "b", "c"),
                 value  = c(  1,   2,   3))
setkey(x2, keyVar)
x2[J(y2$name), ]
## OK
Run Code Online (Sandbox Code Playgroud)

我得到的错误消息是:

Error in vecseq(f__, len__, if (allow.cartesian) NULL else as.integer(max(nrow(x),  :
Join results …
Run Code Online (Sandbox Code Playgroud)

r data.table

24
推荐指数
1
解决办法
1万
查看次数

标签 统计

data.table ×2

r ×2

group-by ×1

performance ×1