组合 3 个表以生成所有列的唯一组合

午夜数据极客

我在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章