R data.table 连接两个表并保留所有行

标签 r join data.table cartesian

有DT1、DT2;需要“加入”它们并保留所有行;结果是DT3。如何实现?

 require(data.table)
DT1 <- data.table(ID_1 = 1:2, val_1 = 1:2)
DT2 <- data.table(ID_2 = 3:4, val_2 = 3:4)

DT1
DT2

DT3 <- data.table(ID_1 = c(1,1,2,2), ID_2 = c(3,4,3,4), val_1 = c(1,1,2,2), val_2 = c(3,4,3,4))
DT3

最佳答案

这是交叉连接,分配一个新键来帮助合并

DT1$Key=1
DT2$Key=1
DT3=merge(DT1,DT2,by='Key')
DT3 #DT3$Key=NULL remove the key 
   Key ID_1 val_1 ID_2 val_2
1:   1    1     1    3     3
2:   1    1     1    4     4
3:   1    2     2    3     3
4:   1    2     2    4     4

关于R data.table 连接两个表并保留所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55583943/

相关文章:

Mysql:在表1中找到1行,该行将表2中的多行与给定值连接起来

r - 按 id 和 date 合并两个数据框

R data.table 子集与比较

R 查找文件创建时间

r - 如何在 R 中的布局内调整单个绘图的边距?

php - 如何从 MySQL 中选择 24 小时内列的总和范围?

sql - Oracle 自联接并与另一个表链接

r - 如何在指定列中选择每个组的前 n 行(连接后)?

r - YouTube API 仅获取 channel 上最新的 20,000 个视频

r - 如何在打开前检查文件大小?