【发布时间】:2016-11-18 01:26:51
【问题描述】:
所以我有这么大的数据框列表,其中一些具有匹配的列,而另一些则没有。我想 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),并且我想根据变量 country 和 year 合并 dataframe 5 和 6。所以我的输出将是几个 rbinded/merged dataframes..
【问题讨论】:
-
我认为 merge (with all=TRUE) 将 rbind (虽然更慢),所以将它们合并在一起可能会起作用。对于如何做到这一点,stackoverflow.com/questions/8091303/…
-
这个有什么更新吗?你找到解决这个问题的方法了吗?
标签: r list dataframe merge rbind