r - Leaflet map 'Error in polygonData.default(data) : Don'不知道如何从类data.frame的对象获取路径数据

标签 r shiny leaflet geo

我正在尝试创建人口普查数据的传单 map 。

我有一个 csv 文件,其中包含爱尔兰各地的死亡人数。数据包含年份 ($Year)、性别 ($Sex)、位置 ($NAME_1) 和死亡年龄 ($Age.at.Death)

同样,我有一个 dbf 文件,其中包含位置 ($NAME_1) 以及多边形创建 map 所​​需的几何图形。

所有数据都正确合并到 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绘制 map 但是一旦我通过 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...

非常感谢任何帮助/

最佳答案

问题是,当将 sf 文件(.dbf 文件)与 csv 文件数据合并时, R secret 地将输出转换为 tibble,因此 leaflet 失去了 在没有帮助的情况下识别“几何”列。

要修复它,您必须明确告诉传单几何列的位置,如下所示 %>% addPolygons(数据 = 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

关于r - Leaflet map 'Error in polygonData.default(data) : Don'不知道如何从类data.frame的对象获取路径数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68728154/

相关文章:

javascript - 如何通过单击按钮来翻转 Shiny 的形状?

r - 计算不包含 `NA` 的数据帧的行数

r - Shiny DT::renderDataTable 的“全选”复选框

r - Shiny :在导体执行时防止端点中的初始错误消息

c# - 如何在 .net 核心中使用 Openstreetmap(osm) 离线图 block 文件?

javascript - 我可以使用相同的样式函数为不同的 GeoJSON 层设置样式吗?

javascript - ajax GET 函数在被另一个函数调用时不返回成功值

r - 具有混合样条线的图形或合并具有不同样条线的图层

r - 查看函数仅在一个 data.frame 上给出错误

r - 根据因子级别对 ggplot2 背景进行着色