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

R 组合3个表以生成所有列的唯一组合,r,data.table,R,Data.table,我在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")) dt1我们可以使用CJ CJ(a = dt1$a, b = dt2$b, c = dt3$c)

我在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"))

dt1我们可以使用
CJ

CJ(a = dt1$a, b = dt2$b, c = dt3$c)

或者以程序化的方式来实现这一点

do.call(CJ, lapply(mget(paste0("dt", 1:3)), `[[`, 1))

谢谢,它工作得很好!我能问一个愚蠢的问题吗?你怎么知道的?或者我怎么可能不问就发现了呢?@Midnight Datageek抱歉,我在接电话。它来自实践。如果您开始使用一种语言几个月/几年,您将了解许多功能和管理它的方法。@此外,如果您阅读
?data.table
及其“请参阅”部分下的所有链接,您将对可用的功能有很好的了解。
do.call(CJ, lapply(mget(paste0("dt", 1:3)), `[[`, 1))