3

一連の 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で機能するのに、他の 2 つでは機能しない理由を教えてくれると思います。list()

4

1 に答える 1

5

pattern引数を使用してから、オブジェクトの一部にエクストラクタをls使用できます...@data.frameSPDF

#  Construct list of objects wtih mget
ll <- mget( ls( pattern = "_adm0" ) )

#  Extract data.frames
out <- lapply( ll , function(x) x@data )
于 2013-10-14T16:06:31.290 に答える