我已将一系列SpatialPolygonsDataFrames加载到我的工作区中。每个命名对象都附加到国家/地区的"_adm0"
,"_adm1"
或"_adm2"
。对于德国,这看起来像"DEU_adm0"
,"DEU_adm1"
和"DEU_adm2"
。
我正在尝试将所有“_adm0”数据帧收集到一个列表中,然后可以通过ldply和fortify进行操作。我可以用,
mylist <- list(DEU_adm0, FRA_adm0, RUS_adm0, etc...)
我在那里写出了我希望被列入名单的所有国家。
但是,如何按模式获取所有"_adm0"
数据框?
我已经开始使用下面的代码,但它没有给出我想要的结果,如写出
adm0list <- ls()[str_detect(ls(), "_adm0")]
mylist <- sapply(adm0list, function(x) get(x))
或者,
mylist <- mget(adm0list, .GlobalEnv)
我确实使用sapply
方法获取了一个对象列表,并使用mget()
,但我不明白为什么这些列表与使用list()
直接使用对象名称不同。我怀疑这个问题的答案会告诉我为什么ldply
+ fortify
适用于list()
方法,而不是其他两种方法。
答案 0 :(得分:5)
您可以使用pattern
的{{1}}参数,然后将ls
提取器用于@
个对象的data.frame
部分...
SPDF