В вашем примере отсутствуют некоторые входные переменные, особенно координаты (long / lat), mname, web, случайности.А с вашей конструкцией приложение никогда не изменится, так как реактивное значение всегда выбирает фрейм данных d, но оно никогда не фильтрует данные по имени или году.Таким образом, вы должны немного адаптировать свою реактивную функцию.Здесь я фильтрую либо по имени, либо по году.Любое из условий должно быть верным.
Я немного изменил ваш код, так что, по крайней мере, он воспроизводим для других, и я переместил ваш реактив в функцию сервера.
d <- data.frame(number = 1:4,
date = c(1600, 1700, 1800, 1900),
longitude = runif(4, 13,18),
latitude = runif(4, 40, 55),
web= rep("www.whatever.com", 4),
T_name = c("name1", "name2", "name3", "name4"))
library(shiny)
library(leaflet)
ui <- {fluidPage("name_of_map",
sidebarLayout(
sidebarPanel(
selectInput(inputId = "input1", label = "Name of Filter" ,choices =
unique(d$T_name)),
selectizeInput(inputId = "year", label = "Year of Event",
choices = unique(d$date))
),
mainPanel(
leafletOutput("mymap"))
)
)}
server <- function(input, output) {
react <- reactive({
req(input$input1)
req(input$year)
df <- d[d$T_name == input$input1 | d$date == input$year,]
df
})
output$mymap <- renderLeaflet({
req(input$input1)
leaflet() %>% addTiles() %>%
addProviderTiles(providers$Esri.NatGeoWorldMap) %>%
addMarkers(lng=react()$longitude, lat=react()$latitude,
popup = paste("mname", "<br>", "Date:", react()$date,
"<br>", "Number of casualties:",
"casualties", "<a href=", react()$web, ">", main=input$input1)
)
})
}
shinyApp(ui, server)