结合两个独立的数据表

时间:2019-08-02 14:14:56

标签: r data.table

我有两个data.tables。一个包含有关人员的数据(DT,而另一个包含有关项目的数据(DT2)。它们不共享任何变量,但是我想将它们两者合并,以便将DT的每一行与整个data.table DT2合并。因此,组合的data.table应该是nrow(DT) * nrow(DT2)长。

我有一个使用lapply()的简单解决方案,但是它似乎效率不高(特别是对于大型data.tables),我想知道是否还有更多的data.table-way来实现。 / p>

library(data.table)
set.seed(1)
DT <- data.table(
  id = 1:3,
  value = rnorm(3)
)

DT2 <- data.table(
  id2 = 1:2,
  value2 = sample(1:10, 2)
)

# desired output
out <- rbindlist(lapply(1:nrow(DT), function(r) {
  cbind(DT[r, ], DT2)
}))

out

   id      value id2 value2
1:  1 -0.6264538   1      7
2:  1 -0.6264538   2      2
3:  2  0.1836433   1      7
4:  2  0.1836433   2      2
5:  3 -0.8356286   1      7
6:  3 -0.8356286   2      2

0 个答案:

没有答案