【发布时间】:2019-05-13 07:44:18
【问题描述】:
假设我们有一个简单的数据表:
d <- data.table(a=c(1,2,3),b=c("A","B","C"))
它的内容是:
a b
1: 1 A
2: 2 B
3: 3 C
现在,我想将数据表的每一行与其他行连接/合并。结果应如下所示:
a b c d
1: 1 A 1 A
2: 1 A 2 B
3: 1 A 3 C
4: 2 B 1 A
5: 2 B 2 B
6: 2 B 3 C
7: 3 C 1 A
8: 3 C 2 B
9: 3 C 3 C
所以,每一行基本上都与整个数据表绑定。 最有效的方法是什么?这可以仅使用 data.table 语法来完成吗?
谢谢!
编辑: data.table 的 CJ 方法确实构建了一个 cartesion 产品,但仅适用于向量,而不适用于表格。
【问题讨论】:
-
合并是最有效的方式(笛卡尔积)
-
d[, .(c = d$a, d = d$b), by = .(a, b)]? -
你在寻找 data.tables 的交叉连接吗?如果是,请查看stackoverflow.com/a/27386618/1989480
-
@chinsoon12 OP 在问题的最后说
CJ没有给出想要的解决方案.... -
另一个类似于 chinsoon 的被骗候选人:Jan 的 CJ.dt stackoverflow.com/a/27347397
标签: r join data.table