【问题标题】:add a column from a dataset to another dataset in R将数据集中的列添加到 R 中的另一个数据集
【发布时间】:2016-04-03 02:08:24
【问题描述】:

假设我有两个数据集

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

但它的作用是在添加“共享”列的同时复制数据集(5*5=25 行)。我显然不想要那个重复的值。谢谢你

【问题讨论】:

  • 您没有要合并的密钥吗?看来“NO”和“loc”应该是你的关键?而且,如果您只想添加共享列并且顺序无关紧要,那么您可以简单地执行 ds1$share <- ds2$share ,我认为这不太可能。

标签: r merge dataset


【解决方案1】:

如果您知道这些行代表相同的 id,那么您可以直接 cbind

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

但如果你有一个 id 加入会更好。

【讨论】:

    【解决方案2】:

    使用dplyr

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

    或data.table

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

    【讨论】:

      猜你喜欢
      • 2021-06-07
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2013-12-24
      相关资源
      最近更新 更多