2016-09-20 7 views
0

Ich habe drei große Datenrahmen unten, und möchten in einen Datenrahmen mit Reihenfolge zusammenführen.R verschmelzen Datenrahmen mit verschiedenen Spalten mit der Reihenfolge

df 1: 
First Name Last Name 
John  Langham 
Paul  McAuley 
Steven  Hutchison 
Sean  Hamilton 
N   N 

df2: 
First Name Wage Location 
John  500  HK 
Paul  600  NY 
Steven  1900 LDN 
Sean  800  TL 
N   N  N 

df3: 
Last Name Time 
Langham  8 
McAuley  9 
Hutchison 12 
Hamilton 7 
N   N 

desired output: 
First Name Last Name Wage Location Time 
John  Langham  500  HK   8 
Paul  McAuley  600  NY   9 
Steven  Hutchison 1900 LDN   12 
Sean  Hamilton 800  TL   7 
N   N   N  N   N 

Ich weiß, wie DF1 und DF2 aber DF1 + 2 verschmilzt verschmelzen durch die zweite Säule df3 die Reihenfolge, in gewünschter Ausgabe geändert, so mag ich eine Empfehlung ist es fragen? Vielen Dank.

+1

Mögliche Duplikat [gleichzeitig mehrere data.frames in einer Liste zusammenführen] (http://stackoverflow.com/questions/8091303/simultaneously-merge-multiple-data-frames-in -a-list) –

+0

(stimme nicht zu, das ist ein Duplikat, t In seinem Q geht es darum, das Endergebnis mehrerer Merges in einer bestimmten Reihenfolge zu erhalten, nicht darum, wie man mehrere Merges erreicht, wie in der verknüpften Frage. – arvi1000

Antwort

2

Wenn Sie versuchen, den Auftrag zu erhalten, wie es in df1 erscheint, erstellen Sie eine Spalte, um zu gedenken, dann wieder verwenden, um die Reihenfolge der df3

# record order 
df1$original_order <- 1:nrow(df1) 

# then do your merges... 
# ... 

# then restore the df1 order to df3 
df3 <- df3[order(df3$original_order),] 

einstellen Wenn Sie möchten, können dann auch loszuwerden dieser Spalte:

df3$original_order <- NULL 
Verwandte Themen