2016-05-18 21 views
0

Ich habe zwei ähnliche Tabellen über einige Ausgaben für mehr als 3 Monate. Ab den Monaten 4-6 wurde eine neue Variable hinzugefügt.Kombinieren von zwei Datenrahmen mit neuen Spalten

df1 = data.frame(Month=c(1,2,3),Rent=c(132,123,234),Food=c(34,13,45)) 

df2 = data.frame(Month=c(4,5,6),Rent=c(111,212,231),Food=c(33,11,41),Fun=c(4,6,5)) 


> df1 
    Month Rent Food 
1  1 132 34 
2  2 123 13 
3  3 234 45 

> df2 
    Month Rent Food Fun 
1  4 111 33 4 
2  5 212 11 6 
3  6 231 41 5 

Wie kann ich kombinieren/fusionieren die beiden Tabellen wie folgt aussehen:

Month Rent Food Fun 
1  1 132 34 NA 
2  2 123 13 NA 
3  3 234 45 NA 
4  4 111 33 4 
5  5 212 11 6 
6  6 231 41 5 
+0

'rbind (data.frame (df1, Fun = NA), df2)' oder 'dplyr :: bind_rows (df1, df2)' – alistaire

+1

'data.table :: rbindlist (Liste (df1, df2), use.names = T , fill = T) '(gibt eine' data.table' zurück) – SymbolixAU

+0

danke, beide lös Ionen funktionierten gut! – Zyferion

Antwort

2

können Sie Familie Funktionen für solche Aufgaben im dplyr Paket verwenden verbinden wie folgt:

library(dplyr) 
full_join(df1, df2) 
Joining by: c("Month", "Rent", "Food") 
    Month Rent Food Fun 
1  1 132 34 NA 
2  2 123 13 NA 
3  3 234 45 NA 
4  4 111 33 4 
5  5 212 11 6 
6  6 231 41 5 
Verwandte Themen