2014-04-25 2 views
0

У меня есть 3 кадра данных неравных размеров, которые я хотел бы объединить (по строкам) в соответствии с их метками столбцов.Объединение фреймов данных в соответствии с метками

a = matrix(c(1,2,3,4,5,6),nrow=2,ncol=3) 
b = matrix(c(1,3,4,5,6,7,8,9),nrow=2,ncol=4) 
c = matrix(c(2,4,4,5,6,7),nrow=2,ncol=3) 
a = data.frame(a) 
b = data.frame(b) 
c = data.frame(c) 
colnames(a) <- c('Apples','Pears','Oranges') 
colnames(b) <- c('Apples','Oranges','Peaches','Pears') 
colnames(c) <- c('Apples','Pears','Peaches') 

Так я после объединенной матрицы из 6 строк х 4 столбцов со всеми данными компании Apple, груша, апельсина и персика в одних и тех же столбцах.

Как это сделать?

+0

Дубликат - http://stackoverflow.com/questions/1299871/how-to-join-data-frames-in-r-inner- наружный левый-правый –

ответ

1

Это то, что вы хотите?

library(plyr) 
rbind.fill(a, b, c) 
# Apples Pears Oranges Peaches 
# 1  1  3  5  NA 
# 2  2  4  6  NA 
# 3  1  8  4  6 
# 4  3  9  5  7 
# 5  2  4  NA  6 
# 6  4  5  NA  7 
1
Reduce(function(...) merge(..., all=TRUE), list(a,b,c)) 
# Apples Pears Peaches Oranges 
# 1  1  3  NA  5 
# 2  1  8  6  4 
# 3  2  4  6  NA 
# 4  2  4  NA  6 
# 5  3  9  7  5 
# 6  4  5  7  NA 
1

использованием Также plyr:

> library(plyr) 
> join_all(list(a,b,c), type = "full") 
Joining by: Apples, Pears, Oranges 
Joining by: Apples, Pears, Peaches 
    Apples Pears Oranges Peaches 
1  1  3  5  NA 
2  2  4  6  NA 
3  1  8  4  6 
4  3  9  5  7 
5  2  4  NA  6 
6  4  5  NA  7 
Смежные вопросы