2016-06-27 3 views
0

두 세트의 데이터 프레임이 있습니다. 아래는 각각에 대한 처음 다섯 줄입니다.R의 다른 데이터 프레임에서 하나 또는 두 개의 열만 병합

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 데이터 집합의 모든 열을 제공합니다. 다른 방법으로 다음을 시도했습니다 (카테고리 열만 가져올 수 있도록). 하지만 나는 운이 없다. 나는 (by.y, y)의 오류를 fix.by에서

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

오류를 얻을 : '에서'다음과 같이해야한다 유일하게 유효한 열

에게 최종 결과를 지정해야합니다

병합하기 전에 열을 밖으로 데리고
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 
+0

먼저 질문을 읽을 수있게하기 위해 좀 더 노력을 기울일 수 있습니까? 나는 코드가 무엇이고 해설이 무엇인지에 대한 단서가 없다. 둘째로,'cbind()'가 작동 할까? 다시 한 번 질문을 읽고 이해하기가 어렵습니다. –

+0

'CATEGORY' 만 선택할 때'id'로 어떻게 합치겠습니까? – ytk

+0

'CATEGORY' 컬럼 만 포함하도록'MBE'를 부분 집합하면 더 이상 병합 할'id' 컬럼이 없습니다. – moman822

답변

0

시도, 예를 들어

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