将数据集中的列添加到R

时间:2016-04-03 02:08:24

标签: r merge dataset

假设我有两个数据集

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行),同时添加“共享”列。我显然不想要那些重复的值。谢谢

2 个答案:

答案 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"]]]