我在R中有3个表,其中没有一个共享一个公共密钥。我想创建一个第4个表,它结合了重复行的所有其他表,因此存在所有3列的唯一组合。
dt1 <- data.table(a = c(1,2,3,4,5))
dt2 <- data.table(b = c("a","b","c","d","e"))
dt3 <- data.table(c = c("p1", "p2", "p3"))
因此,对于dt3中的每一行,您都有dt1和dt2的组合
前几行的一个例子如下:
dt4 <- data.table(a = c(rep(1, 3), rep(2, 3)), c(rep("a", 3), rep("b", 3)), rep(c("p1", "p2", "p3"), 2))
因此,在结果表中,每一行都是唯一的。
答案 0 :(得分:1)
我们可以使用CJ
CJ(a = dt1$a, b = dt2$b, c = dt3$c)
或者以编程方式执行此操作
do.call(CJ, lapply(mget(paste0("dt", 1:3)), `[[`, 1))