введите описание изображения здесь
Я не могу сделать мою карту реактивной, основываясь на двух последовательных опциях выпадающего меню.На этой панели пользователя пользователь сначала выберет scheme
на левой панели, на основе этого выбора индикаторы будут загружены в раскрывающемся меню справа в трех раскрывающихся меню.Затем карта должна раскраситься на основе трех пунктов меню с правой стороны.
В моем коде я не могу отобразить свою карту на основе выбранных индикаторов в трех опциях меню.
Кто-нибудь может помочь?
Вот воспроизводимый пример:
Существует пять наборов данных.Пользователь может выбрать один из наборов данных из раскрывающегося меню, и в зависимости от выбранного набора данных набор индикаторов будет передан во второе раскрывающееся меню.Каждый набор данных имеет различный набор индикаторов.Я привел пример для одного из наборов данных.
Воспроизводимый набор данных
dataset = c(a, b, c, d, e) #five datasets
#example columns in one dataset
gender <- c("Male", "Female","Female", "Male")
Location <- c("AB", "BC", "CD", "DE")
hasJob <- c("Yes","Yes","No","No")
Latitude <- c(49.82380908513249,59.478568831926395,59.478568831926395,49.82380908513249)
Longitude <- c(-10.8544921875,-10.8544921875,2.021484375,2.021484375)
## ui.R ##
library(shinydashboard)
library(leaflet)
ui <- dashboardPage(
dashboardHeader(title = "Dashboard",
titleWidth = 300),
dashboardSidebar(
selectInput(
inputId = "schemes",
label = "Select a Scheme",
choices = c("a","b","c", "d", "e"),
selected = "a",
selectize = FALSE
)
),
dashboardBody(
tabsetPanel(
id = "tabs",
tabPanel(
title = "Main Dashboard",
value = "page1",
fluidRow(
column(width = 9,
box(
width = NULL, solidHeader = TRUE, leafletOutput("mymap", height = 600, width = "100%"))),
column(width = 3,
box(
width= NULL,
selectInput('indicators', 'Select an indicator', "")), #indicators would load automatically as user select options above.
#This is second selectInput widget that will also impact how the Choropleth map loads.
box(
width= NULL,
selectInput("gender", 'Select gender', "")),
)))
)
)
Server..R
server <- function(input, output, session) {
outVar = reactive({
mydata = get(input$schemes)
myvars <- names(mydata)
})
observe({
updateSelectInput(session, "indicators",
choices = outVar()
)})
outVar2 = reactive({
mydata = get(input$schemes)
mydata$Year
})
observe({
updateSelectInput(session, "gender",
choices = outVar2()
)})
datasetInput <- reactive({
switch(input$schemes,
"a" = a,
"b" = b,
"c" = c,
"d" = d,
"e" = e
)
})
output$mymap <- renderLeaflet({
location <- "India"
geo <- geocode(location, limit = 1, key = "place")
qpal <- colorQuantile("viridis", domain = **"WHAT SHOULD GO HERE?"** , n = 5)
leaflet(datasetInput()) %>%
#addProviderTiles("NASAGIBS.ViirsEarthAtNight2012") %>%
addPolygons(stroke = TRUE,
weight = 1,
smoothFactor = 0.2,
fillOpacity = .9,
color = "white",
fillColor = ~qpal("**WHAT SHOULD GO HERE?**")) #%>%
#setView(lat = geo$lat, lng = geo$lon)
})
}
shinyApp(ui, server)