传单地图'polygonData.default(data)中的错误:不知道如何从类data.frame的对象中获取路径数据'
Posted
技术标签:
【中文标题】传单地图\'polygonData.default(data)中的错误:不知道如何从类data.frame的对象中获取路径数据\'【英文标题】:Leaflet map 'Error in polygonData.default(data) : Don't know how to get path data from object of class data.frame'传单地图'polygonData.default(data)中的错误:不知道如何从类data.frame的对象中获取路径数据' 【发布时间】:2021-10-14 02:19:53 【问题描述】:我正在尝试创建人口普查数据的传单地图。
我有一个 csv 文件,其中包含爱尔兰的死亡人数。数据包括年份($Year)、性别($Sex)、地点($NAME_1)和死亡年龄($Age.at.Death)
同样,我有一个 dbf 文件,其中包含位置 ($NAME_1) 和多边形创建地图所需的几何形状。
所有数据都正确合并到 DEATHS1 中,但是一旦我将其传递给传单,我就会收到错误 'polygonData.default(data) 中的错误: 不知道如何从类data.frame'的对象中获取路径数据
library(leaflet)
library(sf)
library(dplyr)
DEATHS <- read.csv("VSA07.csv")
Shape <- read_sf("gadm36_IRL_1.dbf")
MergedData = inner_join(DEATHS,Shape) #inner joins by NAME_1 column, works okay.
DEATHS1 <- filter(MergedData, Year == "2007", Age.at.Death == "All ages", Sex == "Both sexes")
# Want a map satisfying the above conditions only for the moment, also works as intended
DEATHS1
bins <- c(0, 500, 1000, 2000, 3000, 4000, Inf)
pal <- colorBin("YlOrRd", domain = DEATHS1$VALUE, bins = bins)
m <-leaflet() %>%
addProviderTiles(providers$Stamen.TonerHybrid) %>%
addPolygons(data = DEATHS1)
m
奇怪的是,leaflet 可以根据 MergedData 绘制地图 但是一旦我通过 dplyr 应用任何类型的过滤器,即 DEATHS1,我就会收到错误消息。 所以我认为这与它是一个数据框没有任何关系,因为 MergedData 就是这样。
非常感谢任何帮助。
数据快照 死亡
ï..Statistic Year NAME_1 Sex Age.at.Death UNIT VALUE
1 Deaths Occurring 2007 State Both sexes Under 1 year Number 230
2 Deaths Occurring 2007 State Both sexes 1 - 4 years Number 54
形状
A tibble: 26 x 11
GID_0 NAME_0 GID_1 NAME_1 VARNAME_1 NL_NAME_1 TYPE_1 ENGTYPE_1 CC_1 HASC_1 geometry
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <MULTIPOLYGON [°]>
1 IRL Ireland IRL.1~ Carlow Ceatharlach NA Administr~ County NA IE.CW (((-6.592422 52.7081, -6.592915 52.7073, -~
2 IRL Ireland IRL.2~ Cavan An Cabhán NA Administr~ County NA IE.CN (((-7.275174 53.78388, -7.275377 53.78377,~
3 IRL Ireland IRL.3~ Clare An Clár NA Administr~ County NA IE.CE (((-9.731943 52.64875, -9.731943 52.64903,~
死亡1
ï..Statistic Year NAME_1 Sex Age.at.Death UNIT VALUE GID_0 NAME_0 GID_1 VARNAME_1 NL_NAME_1 TYPE_1 ENGTYPE_1 CC_1 HASC_1 geometry
1 Deaths Occurring 2007 Wicklow Both sexes All ages Number 819 IRL Ireland IRL.26_1 Administrative County County <NA> IE.WW MULTIPOLYGON (((-6.109166 5...
非常感谢任何帮助/
【问题讨论】:
【参考方案1】:问题是在将 sf 文件(.dbf 文件)与 csv 文件数据合并时, R 偷偷地将输出转换为 tibble,因此小册子失去了能力 在没有帮助的情况下识别“几何”列。
要修复它,您必须明确告诉传单几何列的位置,如下所示 %>% addPolygons(data = MergedDataFilter$geometry)
米
m <-leaflet() %>%
addProviderTiles(providers$Stamen.TonerHybrid) %>%
setView(lng = -7.4653, lat = 53.5345, zoom = 6.95) %>%
addPolygons(data = DEATHS1$geometry,
weight = 1,
color = "#660000",
fillColor = pal(DEATHS$VALUE))
#m
【讨论】:
以上是关于传单地图'polygonData.default(data)中的错误:不知道如何从类data.frame的对象中获取路径数据'的主要内容,如果未能解决你的问题,请参考以下文章