2014-11-15 5 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.

Теперь все дело в том, что я хочу либо объединить, либо сделать какой-то dcast (я думаю), чтобы эти два длинных кадра данных в один широкий фрейм данных были «abr_2005» «lop_2005» «ins_2005» и abr_2006 "„lop_2006“„ins_2006“в этом конечный файл.

Когда я пытаюсь

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

все переменные с _2005 в конце концов, если он сохраняется в fil_2006.1, но переменные, оканчивающиеся на _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__». Файл довольно большой и имеет много идентификаторов, поэтому я просто хотел сохранить thoose, который содержал «ID__» в конечном объединенном файле. Также у меня есть много имен переменных. Единственными отличиями в имени переменных от обоих файлов являются год (2005 или 2006). Теперь, когда я пытаюсь выполнить мой код, каждый идентификатор находится в объединенной области данных, но каким-то образом переменные с 2006 года получают все из них. Цените, что вы взяли время ура! – Frank49

+0

Странно, думаю, я действительно решил его, просто удалив all.x = T. Не могу понять, почему это работает. – Frank49

Смежные вопросы