Надеюсь, кто-нибудь сможет мне помочь с функцией for l oop, которую я создал для создания карт Leaflet ... У меня в основном два вопроса: я объединил данные с файлом формы в объединенный фрейм данных. На основе этого фрейма данных я хочу создать несколько карт листовок для использования в Shiny dashboard. Однако, когда я хочу l oop поверх этого фрейма данных, я получаю сообщение об ошибке, потому что в этом фрейме данных есть переменные, которые являются символами (идентификатор, на основе которого я объединил файл данных с файлом формы), а многоугольники находятся в фрейме данных также. Второй вопрос, который я хочу задать: как мне включить создание цветовой палитры (см. Код ниже) в мою функцию for l oop? Поскольку каждая переменная, которую я хочу увеличить в своей функции, имеет разный диапазон значений и, следовательно, должна иметь другую цветовую палитру и сопровождающую легенду на карте листовок. Смотрите мой код ниже и то, как он должен выглядеть, как на картинке ниже (ссылка, поскольку я еще не могу публиковать изображения в основном сообщении). Большое, большое спасибо заранее!
library(rgdal)
library(cbsodataR)
library(tidyverse)
library(leaflet.extras)
library(RColorBrewer)
#Load shapefile
ShapefileWijken <- readOGR("/Users/anne/Desktop/RondeVenen/ALGEMEEN_DATA/SHAPEFILES_DRV_6PC_5PC_Gemeente/WijkenEnBuurten/WijkenEnBuurten.shp")
#Load in data from Dutch public open data base
Maps <- cbs_get_data("84583NED",
select=c("AantalInwoners_5","HuishoudensTotaal_28",
"Woningvoorraad_34", "GemiddeldInkomenPerInkomensontvanger_65"))
#Merge shape file and data into one spatial dataframe
MAPS <- merge(ShapefileWijken,
Maps,
by.x = "BU_CODE",
by.y="Codering_3",
all=FALSE)
#Create color palette for one of the variables in the dataframe
pal <- colorNumeric(
palette = c("#99cc33", "#009999"),
domain = MAPS$AantalInwoners_5)
#Create for loop function to iterate over MAPS dataframe
map <- list()
for(nm in names(MAPS)) {
map[[nm]] <- leaflet()%>%
addMapPane(name="voorgrond", zIndex =410)%>%
addMapPane(name="achtergrond", zIndex=400)%>%
addPolygons(data=MAPS,
stroke = F,
smoothFactor = 1,
fillOpacity = 1,
weight = 5,
color = ~pal(MAPS[[nm]]),
label = (paste(MAPS$BU_NAAM, ":", MAPS[[nm]])),
labelOptions = labelOptions(
noHide = F,
textsize = "14px"),
highlightOptions = highlightOptions(
color = "black",
weight = 2,
bringToFront = TRUE),
options=leafletOptions(pane="achtergrond"))%>%
addPolylines(data=MAPS, stroke = TRUE,
smoothFactor = 1,
fillOpacity = 0,
weight = 1.5, color="#000000",
options=leafletOptions(pane="voorgrond"))%>%
addLegend("bottomright",
pal = pal,
values = MAPS[[nm]],
opacity = 1,
na.label = "Geen data")
}
map[["AantalInwoners_5"]]
[![enter image description here][1]][1]
[1]: https://i.stack.imgur.com/ItBGT.png