将数据集中的一列添加到 R 中的另一个数据集

add a column from a dataset to another dataset in R

假设我有两个数据集

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,这样它看起来像

合并

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)])

但它所做的是在添加 "share" 列的同时复制数据集(5*5=25 行)。我显然不想要重复的值。谢谢

如果你知道这些行代表相同的 id 那么你可以 cbind

ds3 <- cbind(ds1, share = ds2$share) 

不过要是有id就更好了

使用dplyr

library(dplyr)
bind_cols(ds1, ds2['share'])

或者用data.table

setDT(ds1)[, share := ds2[["share"]]]