R 在全局环境中,从多个数据帧合并或追加到一个数据帧时出现问题
我在R中的全局环境中有许多数据帧 它们类似于(不是按顺序编号): 我想将它们合并为一个(因为所有这些DFs都有相同的列名,总共有6个) 我所做的:R 在全局环境中,从多个数据帧合并或追加到一个数据帧时出现问题,r,dataframe,merge,dplyr,R,Dataframe,Merge,Dplyr,我在R中的全局环境中有许多数据帧 它们类似于(不是按顺序编号): 我想将它们合并为一个(因为所有这些DFs都有相同的列名,总共有6个) 我所做的: lst <- as.data.frame(unlist(list(ls()))) names(lst) <- "List" lst$List 但是,当我尝试使用下面的代码合并所有这些列时,它并没有达到我所期望的效果(我期望将行追加到一个大的单独DF中): DF请参见rbind按行组合数据帧do.call(rbind,mget(ls
lst <- as.data.frame(unlist(list(ls())))
names(lst) <- "List"
lst$List
但是,当我尝试使用下面的代码合并所有这些列时,它并没有达到我所期望的效果(我期望将行追加到一个大的单独DF中):
DF请参见rbind
按行组合数据帧do.call(rbind,mget(ls(pattern=“DF”))
在基本R或dplyr::bind_行(mget(ls(pattern=“DF”))
或减少(rbind,mget(ls(pattern=“DF”))
虽然这将比do.call更慢,但由于这会反复执行行绑定,所以它没有达到我预期的效果。。。你期待什么?如果列都相同,则希望追加而不是合并。BTW考虑使用列表来保存许多类似的结构化DFS,而不必用环境扫描器跟踪所有的DFS。如ls
,mget
,eapply
@Onyambu感谢并解决了问题。
lst <- as.data.frame(unlist(list(ls())))
names(lst) <- "List"
lst$List
lst$List
[1] df1 df10 df11 df13 df14 df15 df16 df17 df18 df2 df20 df21 df23 df24 df25 df3 df4 df5 df6 df7 df8 df9
DF <- Reduce(function(x, y) merge(x, y, all=TRUE), lst$List)