2016-10-14 3 views
-7

Ich habe 4 Datenrahmen alle mit der gleichen Anzahl von Spalten und identische Spaltennamen.
Die Reihenfolge der Spalten ist unterschiedlich.
Ich möchte alle 4 Datenrahmen miteinander kombinieren und sie mit dem Spaltennamen übereinstimmen.Merge Datenrahmen basierend auf Spaltennamen in r

+1

check out 'merge' – holzben

+1

Welcher Datenrahmen hat die gewünschte Reihenfolge? Oder spielt es keine Rolle? Ein reproduzierbares Beispiel mit ein paar Dingen, die Sie ausprobiert haben, würde helfen. "Zusammenführen" ist nicht die richtige Funktion, da es keine Schlüsselspalten gibt. –

+0

Werfen Sie einen Blick auf 'rbind' – ytk

Antwort

0

Azure ML arbeiten - Dies war die beste Option, die ich gefunden habe, um diese Zusammenführung zu automatisieren.

df <- maml.mapInputPort(1) 
df2 <- maml.mapInputPort(2) 

if (length(df2.toAdd <- setdiff (names(df), names(df2)))) 
df2[, c(df2.toAdd) := NA] 

if (length(df.toAdd <- setdiff (names(df2), names(df)))) 
df[, c(df.toAdd) := NA] 

df3 <- rbind(df, df2, use.names=TRUE) 


maml.mapOutputPort("df3"); 
0

Ihre 4 Datenrahmen Angenommen genannt df1, df2, df3 und df4, da die Anzahl der Spalten und die Spaltennamen identisch sind, warum dann nicht diese:

cl <- sort(colnames(df1)) 
mrg <- rbind(df1[,cl], df2[,cl], df3[,cl], df4[,cl]) 

Wenn Sie möchten, haben sie in einer bestimmten Reihenfolge der Spalten, zum Beispiel die Reihenfolge der Spalten in df2, dann können Sie dies tun:

mrg <- mrg[,colnames(df2)] 
Verwandte Themen