在R的全局环境中按名称选择一些数据框,然后将它们合并为一个数据框

uqjltbpv  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(84)

我已经创建了几个数据框,我需要根据它们的名称选择其中一些,例如,只有那些与“ssp 126”或“2011-2040”,在下面的列表中,然后将它们组合成一个数据框。

> names(which(unlist(eapply(.GlobalEnv,is.data.frame))))
 [1] "map_2071-2100_ssp370" "map_2041-2070_ssp585" "map_2011-2040_ssp585" "map_2041-2070_ssp370"
 [9] "map_2011-2040_ssp126" "map_2041-2070_ssp126" "map_2071-2100_ssp126"
[13] "map_2011-2040_ssp370" "map_1951-1980"        "map_2071-2100_ssp585"               
[17] "map_1981-2010"

有人有什么建议吗?谢谢!

uujelgoq

uujelgoq1#

**解决方案:**使用函数mgetgrep列出全局环境中名称中包含“ssp 126”或“2011-2040”(例如)的所有 Dataframe 。

然后,根据How do I make a list of data frames?答案使用函数data.table::rbindlist()将按名称选择的数据框列表合并为单个数据框,例如

my_df <- mget(grep('ssp126|2011-2040', 
                       names(which(unlist(eapply(.GlobalEnv,is.data.frame)))), 
                       value = TRUE)) %>% 
  data.table::rbindlist(.)

相关问题