如果我理解正确,默认情况下,data.table
通过比较设置为键和具有相同名称的列来合并两个表。如果我有具有不同列名称的表,应该如何编写?例如:具有不同列名称的合并表
set.seed(123)
DT1<-data.table(col1=sample(letters,5,replace=TRUE),col2=sample(LETTERS[1:5],5,replace=TRUE),col3=sample(1:2,5,replace=TRUE))
DT2<-data.table(col4=sample(1:3,10,replace=TRUE),col5=sample(LETTERS[1:5],10,replace=TRUE),col6=sample(1:100,10,replace=TRUE))
(DT1)
(DT2)
> (DT1)
col1 col2 col3
1: h A 2
2: u C 1
3: k E 2
4: w C 2
5: y C 1
> (DT2)
col4 col5 col6
1: 3 D 48
2: 1 C 76
3: 1 C 22
4: 1 B 32
5: 3 A 24
6: 3 E 15
7: 3 E 42
8: 2 D 42
9: 3 D 37
10: 2 A 16
我应该在DT1[
写尽合并选择具有COL2 == COL5 & COL3 == COL4只行? 这是一个预期的输出:提前
col1 col2 col3 col4 col5 col6
h A 2 2 A 16
u C 1 1 C 76
u C 1 1 C 22
y C 1 1 C 76
y C 1 1 C 22
谢谢!
您能告诉我们您期待的输出吗? – Arun
当然,只需一秒钟 –
我会补充说,当你没有谨慎地指定密钥时,想要弄明白为什么'data.table'在“错误”列上合并,这是一个很好的问题。 – MichaelChirico