0

我正在尝试observeEvent()将 Mapview 的x参数更改为新数据。我通常只使用clearShapes()then addPolygons(),但需要zcol等参数。

我想做类似于以下的事情:

server <- function(input, output) {
  output$DisplayMap <- renderLeaflet(
    mapview(first_data, zcol = coolCol, color = brewer.pal(12, "Set3") %>%
      addControl(actionButton("Next", ">"), position = "topright")
  )
  observeEvent(input$Next, {
    output$DisplayMap$x <- next_data  # This doesn't work
  })
}

我意识到有两个问题在起作用(一个更改变量的接口和一种方法),其中一个可能需要某种形式的 React

4

1 回答 1

1

我认为不可能像这样修改输出(但实际上,使用 MRE 会更容易)。

你应该考虑这样的事情:

server <- function(input, output) {

  my_data <- reactiveVal(data.frame(a = 1, b = 2))

  output$DisplayMap <- renderLeaflet(
    mapview(my_data()[[input$Next]], zcol = coolCol, color = brewer.pal(12, "Set3") %>%
      addControl(actionButton("Next", ">"), position = "topright")
  )
}

假设input$Next是用户可以在 GUI 中选择的列的名称。这只是向您展示一个想法。如果您仍需要帮助,请发送 MRE,我可以编辑此答案。

于 2022-01-28T13:14:38.360 回答