Итак, у меня есть большой список фреймов данных, и у некоторых из них есть соответствующие столбцы, а у других нет. Я хочу rbind с совпадающими столбцами и объединить другие, у которых нет совпадающих столбцов (на основе переменных Year, Country). Однако я не хочу вручную просматривать все кадры данных, чтобы увидеть, какие из них имеют совпадающие столбцы, а какие нет.
Теперь я думал, что это будет выглядеть примерно так:
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.
}
Помимо того, что я не знаю, как именно это сделать в R, я начинаю думать, что в конце концов это не сработает.
Для иллюстрации рассмотрим 6 фреймов данных:
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
В этом случае я хотел бы rbind (dataframe 1, dataframe2) и rbind (dataframe 3, dataframe 4), и я хотел бы объединить данные 5 и 6 на основе переменных страны и года. Таким образом, мой вывод будет состоять из нескольких rbinded/объединенных фреймов данных.