Числовые значения отображения цветов на основе пользовательского ввода в буклете r
Я хочу покрасить столбец заполнения карты в моем файле формы на основе диапазона ввода слайдов пользователя, но я продолжаю получать сообщение об ошибке формата данных пространственного полигона, когда пытаюсь установить поднабор данных на основе ввода пользователя. Диапазон определяется пользователем так, что при выборе произнесите, скажем, 200 до 1000 только полигоны, отвечающие вышеуказанному условию, сопоставляются по цвету с базовой карты. СКАЧАТЬ ФАЙЛ ФАЙЛА ЗДЕСЬ Код:
library(shiny)
library(leaflet)
library(rgdal)
library(RColorBrewer)
#loading LIAs shape file
mp<-readOGR(
dsn="C:/LIAs",
layer="m1",encoding = 'UTF-8')
ui<-fluidPage(
leafletOutput("leaf",height = 600),
# Slider input range
sliderInput(inputId = "pop",
label = "Population Per km2:",
min = 1, max = 155000,
value = c(1,15000)
)
)
server<-function(input,output){
#Base map(default)
output$leaf<-renderLeaflet({
leaflet(mp) %>%
#default map
#Add default OpenStreetMap map tiles
addTiles()%>%
# lias polygons
addPolygons(
data = mp,
fillColor = "blue",
weight = 1, smoothFactor = 0.5,
opacity = 1.0, fillOpacity = 1.0
)
})
#slider input observe event function for population per km2
observeEvent(input$pop, {
pal1 <- colorBin("YlOrRd", mp$PpDnsty, bins=15, na.color = "#bdbdbd")
leafletProxy("leaf") %>%
# clearMarkers() %>%
clearControls() %>%
clearShapes()%>%
addPolygons(
data = mp[mp$PpDnsty == input$pop, ],
weight = 1, smoothFactor = 0.5,
opacity = 1.0, fillOpacity = 1.0,
fillColor = ~pal1(PpDnsty)
)%>%
addLegend(title = "Population Per km2", position = "topleft",
pal = pal1, values = ~PpDnsty, opacity = 1)
})
}
shinyApp(ui,server)