【问题标题】:merge only one or two columns from a different dataframe in R仅合并来自 R 中不同数据框的一或两列
【发布时间】:2016-10-29 22:22:57
【问题描述】:

我有两组数据框。以下是每行的前五行。

First Data frame Name: sampel_sort
name                             id         supplier   usage
ABC                             10000079    811121     1
DEF                             10000182    541513     4
Supplier C                      10000484    531110     1
Supplier D                      10000523    541320     1
Supplier E                      10000592    524210     1
Supplier F                      10012711    237110     1

Second data frame Name: MBE
  id    State   total   CATEGORY
10000070    MD       5       MBE
10000182    PR       14      MBE
10000484    TX       1       MBE
10000526    MI       3       MBE
10000592    FL       1       MBE
10000680    ID       14      MBE

我的实际数据集有更多列。我想组合这两个数据框,但只想导入类别列。以下合并语句有效:

ncombined <- merge(x = sample_sort, y = MBE, by = "id", all.x = TRUE)

但这给了我 MBE 数据集中的所有列。我以不同的方式尝试了以下操作(以便仅导入类别列)。但我没有任何运气。我收到一个错误

ncombined <- merge(x = sample_sort, y = MBE[,c("CATEGORY")], by = "id", all.x = TRUE)

fix.by(by.y, y) 中的错误:“by”必须指定唯一有效的列

最终结果应该如下:

First Data frame Name: sample_sort
name                             id         supplier   usage  CATEGORY
ABC                             10000079    811121     1       MBE
DEF                             10000182    541513     4       MBE
Supplier C                      10000484    531110     1       MBE
Supplier D                      10000523    541320     1       MBE
Supplier E                      10000592    524210     1       MBE
Supplier F                      10012711    237110     1       NA

【问题讨论】:

  • 首先,您能否多花点力气让您的问题更具可读性。我不知道什么应该是代码,什么是评论。其次,也许cbind() 可以工作?再次阅读和理解您的问题真的很难。
  • 当您只选择CATEGORY 时,您希望如何通过id 合并?
  • 如果您将MBE 子集化为仅包含CATEGORY 列,则不再有任何id 列可以合并
  • ncombined &lt;- merge(x = sample_sort, y = MBE[,c("id","CATEGORY")], by = "id", all.x = TRUE)merge(x = sample_sort, y = MBE[,c(1,4)], by = "id", all.x = TRUE)
  • 谢谢!有效....我错过了子集的“id”....

标签: r merge


【解决方案1】:

尝试在合并之前取出列,例如

ncombined <- merge(x = sample_sort, y = MBE[,c(1:4)], by = "id", all.x = TRUE)

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 2012-02-04
    • 2021-08-17
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多