Да, updateSelectInput
выполняет эту работу.
В приведенном ниже примере нажатие кнопки обновления вызывает чтение файла Dropbox и обновление списка кампании.
Обратите внимание, что я передаю выбор только первым десяти кампаниям, поскольку 11-я запись приводит к ошибке (возможно, есть недопустимый символ, с которым блестящий не может справиться).
library(shiny)
library(tidyverse)
shinyApp(
ui = fluidPage(
selectInput("state", "Choose a state:",
list(`East Coast` = c("NY", "NJ", "CT"),
`West Coast` = c("WA", "OR", "CA"),
`Midwest` = c("MN", "WI", "IA"))),
actionButton("update", "Update"),
textOutput("result")
),
server = function(input, output, session) {
fb <- reactive({
fb_data <- read_csv("https://www.dropbox.com/s/ry6gfksljbpg1d6/curacao-fb-julago.csv?dl=1", skip = 0)
fb_data
})
observeEvent(input$update, {
dat = fb()
lst_campaigns <- unique(dat$campaign)
updateSelectInput(session, "state",
choices=head(lst_campaigns, 10),
selected=lst_campaigns[1])
})
}
)
server
для автоматического запуска.
server = function(input, output, session) {
fb_data <- read_csv("https://www.dropbox.com/s/ry6gfksljbpg1d6/curacao-fb-julago.csv?dl=1", skip = 0)
lst_campaigns <- unique(fb_data$campaign)
updateSelectInput(session, "state",
choices=head(lst_campaigns, 10),
selected=lst_campaigns[1])
}