本文介绍了合并式场景与两个data.tables的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个数据框架(实际上是data.tables)。
I have two dataframes (actually data.tables).
set.seed(123)
dt1 <- data.table(P=rep(letters[1:3],c(4,2,3)),X=sample(9))
dt1
P X
1: a 3
2: a 7
3: a 9
4: a 6
5: b 5
6: b 1
7: c 2
8: c 8
9: c 4
和:
dt2 <- data.table(P=rep(letters[1:5],length=10),D=c("X","Y","Z","G","F"))
dt2
P D
1: a X
2: b Y
3: c Z
4: d G
5: e F
6: a X
7: b Y
8: c Z
9: d G
10: e F
现在我要向dt1添加一个新列,与dt2的列D,其中P在dt1和dt2中具有相同的值。它应该如下所示:
Now I want to add a new column to dt1, with column "D" of dt2 where P has the same value in dt1 and dt2. It should look like this:
dt_new
P X D
1: a 3 X
2: a 7 X
3: a 9 X
4: a 6 X
5: b 5 Y
6: b 1 Y
7: c 2 Z
8: c 8 Z
9: c 4 Z
推荐答案
我会以这种方式执行 data.table join
:
setkey(dt1, P)
dt1[unique(dt2),nomatch=0]
P X D
1: a 3 X
2: a 7 X
3: a 9 X
4: a 6 X
5: b 5 Y
6: b 1 Y
7: c 2 Z
8: c 8 Z
9: c 4 Z
这篇关于合并式场景与两个data.tables的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!