我在 R 中有 3 个表,没有一个共享一个公共键。我想创建一个第四个表,它结合了所有其他行重复的表,因此存在所有 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))
所以在结果表中,每一行都是唯一的。
我们可以用 CJ
CJ(a = dt1$a, b = dt2$b, c = dt3$c)
或者以编程方式执行此操作
do.call(CJ, lapply(mget(paste0("dt", 1:3)), `[[`, 1))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句