2016-07-14 2 views
-2

두 개의 데이터 프레임이있는 경우 data1은 키이고 data2는 매우 긴 데이터 집합입니다.동일한 열 값을 사용하는 다른 데이터 프레임에서 값 가져 오기

데이터 1

type type2 contact 
a  1  alex 
a  2  jim 
a  3  alex 
b  1  john 
b  2  bart 
b  3  jim 

및 데이터 2

type type2  
a  1   
a  1   
a  1   
a  2   
a  3  
a  3  
b  1   
b  2  
b  2  
b  3  

나는 아래의 결과를 얻기 위해 데이터 1을 사용하여 데이터 2에 나와있는 연락처 정보를 참조하기위한 공식을 좀하고 싶습니다.

type type2 contact 
a  1  alex 
a  1  alex 
a  1  alex 
a  2  jim 
a  3  alex 
a  3  alex 
b  1  john 
b  2  bart 
b  2  bart 
b  3  jim 

나는의 라인을 따라 뭔가 시도 : 작동하지 않습니다 그러나

data2$contact <- data1$contact[data1$type == data2$type & data1$type2 == data2$type2] 

을, 나는 R에 걸릴 오른쪽 접근 방식의 확실하지 않다

답변

0

우리가 할 수있는 사용 left_join

library(dplyr) 
left_join(data1, data2) 
# type type2 contact 
#1  a  1 alex 
#2  a  1 alex 
#3  a  1 alex 
#4  a  2  jim 
#5  a  3 alex 
#6  a  3 alex 
#7  b  1 john 
#8  b  2 bart 
#9  b  2 bart 
#10 b  3  jim 

또는 base R 옵션이 match

data1$contact[match(do.call(paste0, data2), do.call(paste0, data1[-3]))] 
#[1] "alex" "alex" "alex" "jim" "alex" "alex" "john" "bart" "bart" "jim" 
관련 문제