【发布时间】: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 <- 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”....