繁体   English   中英

将数据集中的列添加到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的“共享”列添加到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)])

但是它的作用是复制数据集(5 * 5 = 25行),同时添加“共享”列。 我显然不希望重复的值。 谢谢

如果您知道这些行代表相同的ID,则可以进行绑定

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

但是如果您有一个ID可以加入,那就更好了。

使用dplyr

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

或与data.table

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM