Обновите фрейм данных, чтобы изменить вывод листовок на основе выбора пользователя в блестящем - PullRequest
0 голосов
/ 08 мая 2020

Я новичок в shiny, и я пробовал несколько способов обновить вывод листовок на основе двух selectinput: первый выбирает фрейм данных для использования, а второй - что фильтровать. этот бит работает, но я, похоже, не могу передать это прокси-серверу листовки, любые мысли будут оценены

poldat <- vroom::vroom("F:/ming1/data/poldat.csv")
meddat <- vroom::vroom("F:/ming1/data/meddat.csv")
medlist <- vroom::vroom("F:/ming1/data/ddl1.csv")
pollist <- vroom::vroom("F:/ming1/data/ddl2.csv")
library(shiny)
library(leaflet)
library(RColorBrewer)
library(vroom)
ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "50%", height = "100%"),
  absolutePanel(top = 10, right = 10,
                selectInput('var1', 'Select the area you wish to view', choices = c("choose" = "","police","Medical")), 
                selectInput('var2', 'Select the area you would like to view' ,choices =c("choose" = "")),

  ))



server <- function(input, output, session){
  output$map <- renderLeaflet({
    leaflet(map1) %>% addTiles() %>%
      fitBounds(~min(long), ~min(lat), ~max(long), ~max(lat))


  })
  observe({
    a_option <- input$var1
      if (a_option == "police") {
      updateSelectInput(session, "var2", choices = c("choose" = "",pollist$row1))
      }else{
      updateSelectInput(session, "var2", choices = c("choose" = "",medlist$row1))
    }

})

  observe({
        catreq <- input$var1
        #mapfilt <- input$var2
    mydf<- input$var1
    if (mydf == "police") {
      mydf = poldat
    }else{
      mydf = meddat

    }

   mycol <- input$var1
    if (mycol == "police") {
      mycol = "fallswithin"
    }else{
      mycol = "healtharea"
    }

    map1 <-  subset(mydf, mycol == input$var2)
    leafletProxy("map", data = map1[2:3]) %>% addTiles()# %>% 
    addMarkers(clusterOptions = markerClusterOptions(),label = paste("test"))

    }) 


}

shinyApp(ui, server)
...