假设我有两个数据集
DS1
NO ID DOB ID2 count
1 4083 2007-10-01 3625 5
2 4408 2008-07-01 3603 2
3 4514 2007-07-01 3077 3
4 4396 2008-05-01 3413 5
5 4222 2003-12-01 3341 1
DS2
loc share
12 445
23 4
10 56
1 1
23 34
我希望将ds2的“share”列添加到ds1,使其看起来像
dsmerged
NO ID DOB ID2 count share
1 4083 2007-10-01 3625 5 445
2 4408 2008-07-01 3603 2 4
3 4514 2007-07-01 3077 3 56
4 4396 2008-05-01 3413 5 1
5 4222 2003-12-01 3341 1 34
我尝试合并为 dsmerged< - merge(ds1 [,c(1:5)],ds2 [,c(2)])
但它的作用是复制数据集(5 * 5 = 25行),同时添加“共享”列。我显然不想要那些重复的值。谢谢
答案 0 :(得分:1)
如果您知道行代表相同的ID,那么您可以只是cbind
ds3 <- cbind(ds1, share = ds2$share)
但如果你有一个id加入会更好。
答案 1 :(得分:0)
使用dplyr
library(dplyr)
bind_cols(ds1, ds2['share'])
或data.table
setDT(ds1)[, share := ds2[["share"]]]