По крайней мере, одна проблема заключается в том, что вы «слушаете» не ту кнопку, это должно быть id
, которое вы определили в вас ui
, в вашем случае, «радио».Кроме того, вы можете сделать вы с одним observeEvent
вместо вашего пути;
ui<- bootstrapPage(
leafletOutput("mymap"),
absolutePanel(top = 10,
right = 10,
radioButtons("radio", h3("Indicateurs de mobilité"),
choices = list("AttrOne" = "Attr1",
"AttrTwo" = "Attr2",
"AttrThree" = "Attr3")))
)
server <- function(input, output, session) {
v <- observeEvent(input$radio,{
if(input$radio=="Attr1"){
v$data <- Df$A1}
if(input$radio=="Attr2"){
v$data <- Df$A2}
if(input$radio=="Attr3"){
v$data <- Df$A4}
})
output$mymap <- renderLeaflet({
leaflet(Df) %>%
addProviderTiles(
providers$"CartoDB.DarkMatter") %>%
addPolygons(
fillColor = ~colorBin(palette = "YlOrRd",
bins = getBreaks(v$data,
nclass = 6,
method = "fisher-jenks"),
domain = v$data
)(v$data),
weight = 1,
opacity = 0.3,
color = "white",
fillOpacity = 0.3)
})
}
shinyApp(ui = ui, server = server)
Несмотря на эту ошибку, я не могу заверить вас, что это будет работать нормально, потому что ваш пример не воспроизводим.В следующий раз, пожалуйста, не могли бы вы предоставить нам dput(Df)
или хотя бы несколько строк, чтобы мы могли выполнить ваш код от начала до конца и найти другие проблемы?
С вашим кодом:
ui<- bootstrapPage(
leafletOutput("mymap"),
absolutePanel(top = 10,
right = 10,
radioButtons("radio", h3("Indicateurs de mobilité"),
choices = list("AttrOne" = "Attr1",
"AttrTwo" = "Attr2")))
)
server <- function(input, output, session) {
v <- reactiveValues(data = sData$numdep)
observeEvent(input$radio,{
if(input$radio=="Attr1"){
v$data <- sData$numdep
}
if(input$radio=="Attr2"){
v$data <- sData$insee
}
})
output$mymap <- renderLeaflet({
leaflet(sData) %>%
addProviderTiles(
providers$"CartoDB.DarkMatter") %>%
addPolygons(
fillColor = ~colorBin(palette = "YlOrRd",
bins = getBreaks(v$data,
nclass = 6,
method = "fisher-jenks"),
domain = v$data
)(v$data),
weight = 1,
opacity = 0.3,
color = "white",
fillOpacity = 0.3)
})
}
shinyApp(ui = ui, server = server)
Лучший!