1

アイデアを与えるために、マップの空間ポリゴンを定義するエントリを含むリスト (Stata dta ファイルからインポート) があります。

> typeof(aux3)
[1] "list"
> mode(aux3)
[1] "list"
> head(aux3)
  _ID        _X       _Y
1   1        NA       NA
2   1 -22.23933 64.56315
3   1 -22.25667 64.56053
4   1 -22.25026 64.56653
5   1 -22.27167 64.57319
6   1 -22.30311 64.55409
> tail(head(aux3,20000))
      _ID       _X       _Y
19995   2 21.21593 60.24696
19996   2 21.21650 60.24337
19997   2 21.23972 60.24913
19998   2 21.22203 60.23304
19999   2 21.21618 60.23332
20000   2 21.22092 60.23930
> #etc.

これを R でマップを作成するために使用できるデータ構造に変換したいと思います (より大きな困難や広範な専門知識を必要とせずに、これまでに行ったことがない)。 sp パッケージの SpacialPolygons タイプは最も簡単な選択。さらに、定義から、SpacialPolygons メソッド (このパッケージで定義されています。パッケージのドキュメント、79 ページを参照) は、リストからこのデータ型に変換する正しいメソッドであるように見えます。

残念ながら、この方法で作業するのはそれほど簡単ではなく、助けが必要です。私の(素朴な)試みは、私が理解できないエラーを引き起こし、Google検索で興味深い結果をもたらしません。

> library(maptools)
Loading required package: sp
Checking rgeos availability: FALSE
    Note: when rgeos is not available, polygon geometry     computations in maptools depend on gpclib,
    which has a restricted licence. It is disabled by default;
    to enable gpclib, type gpclibPermit()
> SP<-SpatialPolygons(aux3)
Error in SpatialPolygons(aux3) : 
  cannot get a slot ("area") from an object of type "integer"

上記のリストを SpacialPolygon に変換できますか? もしそうなら、どのように?そうでない場合、代わりにどの形式を選択すればよいですか? ありがとう。

4

1 に答える 1

1

地図を描画したいだけなら、ggplot を使用できます。私はあなたのデータを持っていないので、これをテストすることはできませんが、動作するはずです.

library(ggplot2)
aux_df <- data.frame(aux3)
# as per comment: the list-to-dataframe conversion prepends the column names with X
ggplot(aux_df, aes(x=X_X, y=X_Y, group=X_ID) + 
  geom_polygon(color='black', fill=NA) +
  coord_map() +
  theme_classic()

上記は、リストが および で定義されたポリゴンに経度と緯度を持っていることを前提としていaux3ます。デフォルトではメルカトル図法が適用されますが、別の引数を に使用してこれを変更できます。_X_Y_IDcoord_map()

これは、オハイオ郡のマップを使用した実際の例です (任意選択)。

library(ggplot2)
ohio_poly <- map_data('county', region='ohio')
ggplot(ohio_poly, aes(x=long, y=lat, group=group)) +
  geom_polygon(color='black', fill=NA) +
  coord_map() +
  theme_classic()

ここに画像の説明を入力

于 2015-08-10T15:38:46.757 に答える