У меня есть фрейм данных следующим образом:
d <- data_frame(number = 1:4,
date = c(1600, 1700, 1800, 1900),
T_name = c("name1", "name2", "name3", "name4"),
casualties= c(18, 89, 97, 34),
m_name= c("name1", "name2", "name3", "name4"),
longitude = c(87.7, 103.2, 67.0, 76.8),
latitude = c(23.4, 78.3, 78.9, 34.9))
Я пытаюсь заставить мою карту реагировать на выбранный вход, но при запуске кода я получаю следующее сообщение об ошибке:
Length of logical index vector must be 1 or 9 (the number of columns), not 25
В моих реальных данных 9 столбцов и 25 строк, так что в этом есть какой-то смысл.Я просто не могу понять, как изменить мой код.Мне нужен раскрывающийся список, отсортированный по уникальному T_name, и при выборе нового T_name карта обновляется только данными из этого T_name.
UI
library(shiny)
library(leaflet)
ui <- {fluidPage("app title",
sidebarLayout(
sidebarPanel(
selectInput(inputId = "input1", label = "Name" ,choices =
unique(d$T_name))
),
mainPanel(
leafletOutput("mymap"))
)
)}
server
server <- function(input, output) {
react <- reactive({
req(input$input1)
df <- d[d$T_name == input$input1]
df
})
output$mymap <- renderLeaflet({ req(input$input1)
leaflet() %>% addTiles() %>% setView(lng = -100.94, lat = 38.94 , zoom
= 3.5) %>%
addProviderTiles(providers$Esri.NatGeoWorldMap) %>%
addMarkers(lng=react()$longitude, lat=react()$latitude,
popup = paste(d$m_name)
)
})
}
Запустите приложение
shinyApp(ui, server)
Я уже несколько дней играю с этим, поэтому любая помощь очень ценится!