1

私が取り組んでいるプロジェクトを支援するために、州の郡にデータを入力しようとしています。ニューヨークの郡の地図に郡名を追加する方法について、ここで素晴らしい答えを見つけました。いくつかの州ではそれを使用できましたが、テキサスとルイジアナの地図を使用しようとすると、うまくいきません。参考までに、これは私が入力しているものです:

library(ggplot2)
library(sp)
library(maps)
getLabelPoint <- function(county) {Polygon(county[c('long', 'lat')])@labpt}
df <- map_data('county', 'louisiana')
centroids <- by(df, df$subregion, getLabelPoint)

その時点で、R は「Error in Polygon(county[c("long", "lat")]) : ring not closed」を吐き出します。

正直なところ、これを修正するためにどこから始めればよいかさえわからないので、助けや別の方法さえあれば素晴らしいでしょう.

4

1 に答える 1

1

この問題は、間違った変数でデータフレームを分割したことが原因です。ただし、代わりに試してみませgroupんか?より適切にフォーマットされ、より使いやすい出力が得られると思います。subregionbysapply

 t( sapply( unique(df$group) , function(x) Polygon(df[df$group==x,c("long","lat")])@labpt ) )
#          [,1]     [,2]
# [1,] -92.40716 30.29909
# [2,] -92.82364 30.65532
# [3,] -90.91371 30.20234
# [4,] -91.06610 29.90319
# [5,] -92.00565 31.08009
# [6,] -93.34896 30.65511
# ..........

編集

問題は思ったより簡単でした!group間違ったグループ変数で分割していました。 NOTにする必要がありsubregionます。byただし、私のソリューションは、 (IMHumbleO)の面白い書式設定よりも、ラベルを配置するためのより使いやすい出力を提供します。

centroids <- by(df, df$group, getLabelPoint)
于 2013-06-20T21:26:28.020 に答える