将串扰与Shiny一起使用以过滤反应数据

时间:2019-09-30 05:19:20

标签: r shiny

我正在使用由filter_slider过滤的地图和数据表之间共享的反应性数据。

使用地图或数据表进行过滤有效,但是,当移动滑块时,它似乎首先起作用-它会根据需要过滤地图和数据表-然后突然在重绘地图和数据表时自行重置过滤器。

this question不同,我有意希望数据在服务器代码内是可响应的,其中enter image description here数据既在ui上又在服务器之外。这是因为我希望每个用户在使用应用程序时都能拥有自己的数据集。

library(shiny)
library(crosstalk)
library(leaflet)
library(DT)


ui <- fluidPage(
  # Create a filter input
  uiOutput("filter_slider"),
  bscols(leafletOutput("map"), DTOutput("table"))
)

server <- function(input,output) {

  my_data <- reactive(quakes[sample(nrow(quakes), 100),])
  shared_data <- SharedData$new(my_data)

  output$filter_slider <- renderUI({
    filter_slider("mag", "Magnitude", shared_data, column="mag", step=0.1, width=250)
  })

  output$map <- renderLeaflet({ leaflet(shared_data) %>% addTiles() %>% addMarkers()})

  output$table <- renderDT({
    datatable(shared_data, extensions="Scroller", style="bootstrap", class="compact", width="100%",
              options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
  }, server = FALSE)
}

shinyApp(ui = ui, server = server)

0 个答案:

没有答案