Data.Table R 中没有键的完全外部连接

Data.Table Full Outer Join in R without key

我有一个数据集如下: dt1 =

customerid value
1356 0.26
1298 0.38

dt2 =

project_yr value
1 0.31
2 0.79

我想合并/加入它们以获得以下输出:

customerid value project_yr value
1356 0.26 1 0.31
1356 0.26 2 0.79
1298 0.38 1 0.31
1298 0.38 2 0.79

最快的方法是复制df1(类似于这个Repeat rows of a data.frame)然后合并第二个吗?

或者有没有办法使用 data.table 合并功能来做到这一点?

谢谢!

dt1 <- tibble::tribble(
  ~customerid, ~value,
  1356L,   0.26,
  1298L,   0.38
)

dt2 <- tibble::tribble(
  ~project_yr, ~value,
  1L,   0.31,
  2L,   0.79
)

tidyr::expand_grid(dt1, dt2, .name_repair = "minimal")
#> # A tibble: 4 x 4
#>   customerid value project_yr value
#>        <int> <dbl>      <int> <dbl>
#> 1       1356  0.26          1  0.31
#> 2       1356  0.26          2  0.79
#> 3       1298  0.38          1  0.31
#> 4       1298  0.38          2  0.79

您要查找的是交叉连接

setkey(dt1[,c(k=1,.SD)],k) [ dt2[,c(k=1,.SD)], allow.cartesian=TRUE ][,k:=NULL]