2017-09-29 18 views
0

2006 년 데이터를 하나의 데이터 프레임으로 복사했습니다. 2013 년 데이터를 다른 데이터 프레임으로 복사했습니다. CaseID는 두 데이터 프레임의 기본 키입니다. 이 두 데이터 프레임을 어떻게 비교하여 두 데이터 프레임에있는 caseID를 찾을 수 있습니까?두 데이터 프레임의 열을 비교하여 한 데이터 프레임의 caseid가 다른 데이터 프레임에 있는지 확인하십시오.

예 :

d1 
123 
234 
254 

d2 
236 
256 
123 

output must be: 
123 

내가 코드를 다음 사용하고 내가 그 최악의 방법 생각 :

for(i in 1:(nrow(AllYearsCaseIDs))){ 
    for (j in 1:(nrow(AllYearsCaseIDs))){ 
    if(is.na((AllYearsCaseIDs[i, "dat2013.CASEID"]))) 
     break 

     if(is.na((AllYearsCaseIDs[j, "dat2006.CASEID"]))) 
     break 

     if((AllYearsCaseIDs[i, "dat2013.CASEID"]) == (AllYearsCaseIDs[j, "dat2006.CASEID"])){ 
     output[i, 1 ] <- as.matrix(AllYearsCaseIDs[i, "dat2013.CASEID"]) 
     break 
     } 
    } 
} 
+0

사용'intersect' 일반적인 케이스 ID의의를 찾을 수 2

df$CASEID 

옵션 ,'intersect (d1 $ column_name, d2 $ column_name)' –

답변

0

옵션 1 :

당신은 사용할 수 있습니다 merge

df <- merge(dat2013, dat2006, by="CASEID") 

dfCASEID 인 병합 된 데이터 프레임 인 경우 dat2013dat2006에 모두 존재합니다.

당신은 모두에 존재 CASEID 반환 할 경우

dat2013$CASEID[dat2013$CASEID %in% dat2006$CASEID] 

옵션 3 :

intersect(dat2013$CASEID, dat2006$CASEID)