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 吐出“多边形中的错误(县 [c(“long”,“lat”)]):环未关闭”

老实说,我什至不知道从哪里开始解决这个问题,所以任何帮助甚至替代方法都会很棒。

4

1 回答 1

1

问题源于将数据框拆分到错误的变量上。但是,您应该使用group, 而不是subregion(请参阅帖子末尾),而不是by尝试如何sapply?我认为它提供了更好的格式和更易于使用的输出:

 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
# ..........

编辑

问题比我想象的要简单!您在错误的组变量上进行拆分,应该是groupNOT subregionby但是,与(IMHumbleO)的有趣格式相比,我的解决方案为放置标签提供了更好的可用输出

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