2015-02-02 2 views
1

나는 비슷한 질문을 많이 보았지만 내 질문에 대한 답은 아무것도 찾지 않았습니다.두 데이터 프레임 조인 및 일치하는 행 덮어 쓰기 [R]

난 (rbind처럼) 열에 의해 R 두 dataframes 가입하고 두 번째 테이블이 첫번째 컬럼의 값 더 반복한다

I 원할 없다되도록 제 칼럼의 일치 값을 덮어 쓰기하고 싶지 같은 것을 할 :

a<-data.frame(c("Foo", "Moo", "Boo"), c(1, 2, 3), stringsAsFactors=F) 
colnames(a)<-c("Name", "Value") 
b<-data.frame(c("Boo", "Bar", "Bat"), c(11, 12, 13), stringsAsFactors=F) 
colnames(b)<-c("Name", "Value") 

rbind_and_overwrite(a, b) 

# Output 
#    Name   Value 
# 1   Foo   1 
# 2   Moo   2 
# 3   Boo   11 
# 4   Bar   12 
# 5   Bat   13 

을 내가 루프에 대한 혼란의 무리와 함께 할 수있는 확신 해요,하지만 내 테이블이 다소 크기 때문에 그것을 할 몇 가지 빠르고 우아한 방법이 있다면 궁금 해서요.

답변

2

난 그냥 a에 만 rbind() 해당 행을 A의 존재하지 않는 B의 Name의 테스트하기 위해 %in%를 사용하고 싶습니다.

rbind(a, b[!b$Name %in% a$Name,]) 
# Name Value 
# 1 Foo  1 
# 2 Moo  2 
# 3 Boo  3 
# 21 Bar 12 
# 31 Bat 13 
+0

지금은 너무 단순 해 보입니다. b 이름이 다른 이름 대신에 이름을 덮어 쓰게하려면 rbind (a [! a $ Name % in % b $ Name,], b)를 써야합니다. 감사! –

+0

@CactusWoman. 알았어. 너에게 도움이 된 다행. –

+0

@CactusWoman 귀하의 질문에 대한 답변이 있다면, 내 대답의 왼쪽에있는 체크 표시를 클릭하여 다른 사람에게 표시하십시오. 감사. –

관련 문제