Also habe ich diese große Liste von Datenrahmen, und einige von ihnen haben übereinstimmende Spalten und andere nicht. Ich möchte diejenigen mit übereinstimmenden Spalten verknüpfen und die anderen zusammenführen, die keine übereinstimmenden Spalten haben (basierend auf den Variablen Jahr, Land). Ich möchte jedoch nicht alle Datenrahmen von Hand durchgehen, um zu sehen, welche Spalten übereinstimmende haben und welche nicht.Rbind und merge in R
Jetzt dachte ich, dass es etwas entlang der Linien von aussehen:
myfiles = list.files(pattern="*.dta")
dflist <- lapply(myfiles, read.dta13)
for (i in 1:length(dflist)){
if colnames match
put them in list and rbindlist.
else put them in another list and merge.
}
Abgesehen von nicht zu wissen, wie diese genau in R zu tun, ich bin dies funktionieren würde, nicht zu denken beginne nach alle.
illustrieren Um 6 Datenrahmen betrachten:
Dataframe 1: Dataframe 2:
Country Sector Emp Country Sector Emp
Belg A 35 NL B 31
Aus B 12 CH D 45
Eng E 18 RU D 12
Dataframe 3: Dataframe 4:
Country Flow PE Country Flow PE
NL 6 13 ... ... ...
HU 4 11 ... ...
LU 3 21 ...
Dataframe 5: dataframe 6:
Country Year Exp Country Year Imp
GER 02 44 BE 00 34
GER 03 34 BE 01 23
GER 04 21 BE 02 41
In diesem Fall würde ich (Datenrahmen 1, dataframe2) und rbind (Datenrahmen 3, Datenrahmen 4) rbind wollen, und ich möchte Datenrahmen 5 fusionieren und 6, basierend auf Variablen Land und Jahr. Also meine Ausgabe wäre mehrere rbinded/verschmolzene Datenrahmen.
ich merge denken (mit allen = TRUE) wird rbind (wenn auch langsamer), so dass es ihnen nur verschmelzen alle zusammen arbeiten könnte. Um dies zu tun, http://stackoverflow.com/questions/8091303/simultously-merge-multiple-data-frames-in-a-list – Aaron