Отзывчивость карт Choropleth, основанная на трех последовательных выпадающих вариантах в Shiny - PullRequest
0 голосов
/ 01 апреля 2019

enter image description here введите описание изображения здесь

Я не могу сделать мою карту реактивной, основываясь на двух последовательных опциях выпадающего меню.На этой панели пользователя пользователь сначала выберет 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...