R data.table连接两个表并保留所有行
有DT1、DT2;需要“加入”它们并保留所有行;结果是DT3。如何实现R data.table连接两个表并保留所有行,r,join,data.table,cartesian,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,
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
require(data.table)
DT1这是交叉连接分配一个新键以帮助merge
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
我们可以从tidyr
tidyr::crossing(DT1, DT2)
# A tibble: 4 x 2
# DT1$ID_1 $val_1 DT2$ID_2 $val_2
# <int> <int> <int> <int>
#1 1 1 3 3
#2 1 1 4 4
#3 2 2 3 3
#4 2 2 4 4
tidyr::交叉(DT1、DT2)
#一个tibble:4x2
#DT1$ID\u 1$val\u 1 DT2$ID\u 2$val\u 2
#
#1 1 1 3 3
#2 1 1 4 4
#3 2 2 3 3
#4 2 2 4 4
请参见