2014-11-15 3 views
1

7 개의 완전한 데이터 프레임을 하나의 위대한 와이드 데이터 프레임으로 병합하려고합니다. 나는 이것을 단계적으로하고 2 개의 프레임을 1로 병합 한 다음 그 프레임을 다른 프레임으로 병합해야 모든 7 개의 원본 프레임이 하나가 될 때까지 계산해야한다고 생각했습니다.데이트를 정확히 병합하는 방법

fil2005: "ID" "abr_2005" "lop_2005" "ins_2005" 
fil2006: "ID" "abr_2006" "lop_2006" "ins_2006" 

그러나 변수 "abr_2006" "lop_2006" "ins_2006"2005 년 모든 중 0,1입니다.

이제는 두 개의 긴 데이터 프레임을 "abr_2005" "lop_2005"와 "ins_2005"와 abr_2006이되도록 여러 종류의 데이터 프레임을 병합하거나 일종의 dcast로 병합하려고합니다. ""lop_2006 ""ins_2006 "그것이 fil_2006.1에 저장하면 내가 말 _2005와

$fil_2006.1 <- merge(x=fil_2005, y=fil_2006, by="ID__", all.y=T) 

모든 변수를하려고하면. 그 최종 파일에

있지만 변수로 끝나는 _2006하지 않습니다.

나는 분명히 뭔가 잘못하고 있습니다. 어떤 생각입니까?

답변

0

ID__ 뒤에 밑줄을 그 이유가 있습니까? 그렇지 않으면, 사용자가 제공 한 코드는

예를 작동합니다

dat1 <- data.frame("ID"=seq(1,20,by=2),"varx2005"=1:10, "vary2005"=2:11) 
dat2 <- data.frame("ID"=5:14,"varx2006"=1:20, "vary2006"=21:40) 
# create data frames of differing lengths 

head(dat1) 
    ID varx2005 vary2005 
1 1  1  2 
2 3  2  3 
3 5  3  4 
4 7  4  5 
5 9  5  6 
6 11  6  7 

head(dat2) 
    ID varx2006 vary2006 
1 5  1  21 
2 6  2  22 
3 7  3  23 
4 8  4  24 
5 9  5  25 
6 10  6  26 

merged <- merge(dat1,dat2,by="ID",all=T) 
head(merged) 

    ID varx2006 vary2006 varx2005 vary2005 
1 1  NA  NA  1  2 
2 3  NA  NA  2  3 
3 5  1  21  3  4 
4 5  11  31  3  4 
5 7  13  33  4  5 
6 7  3  23  4  5 
+0

예 __ 이유는 내가 마지막에 포함하는 모든 ID __을 유지하려는 것입니다. 새 ID는 "ID__"입니다. 파일이 상당히 크고 ID가 많기 때문에 최종 병합 파일에 "ID__"가 포함 된 파일을 보관하기 만하면됩니다. 또한 나는 많은 변수 이름을 가지고있다. 두 파일의 변수 이름의 유일한 차이는 연도 (2005 또는 2006)입니다. 이제 모든 코드가 병합 된 데이터 프레임에 있지만, 어떻게 든 2006 년의 변수는 모두 해당 코드를 사용합니다. 당신이 할 수있는 시간을 들여서 고맙게 생각합니다! – Frank49

+0

이상하게, 실제로 all.x = T를 제거하여 실제로 해결했다고 생각해보십시오. 왜 그것이 작동하는지 이해할 수 없습니다. – Frank49