Я новичок в R и Shiny и пытаюсь понять, как позволить пользователю добавлять новые «варианты» в список выбора по одному.например, если пользователь загружает наборы данных по одному, имена всех наборов данных будут тогда доступны для выбора в списке выбора.
Я сделал простую версию (см. ниже), где пользователь может добавитьодин новый «выбор» в списке.Но, очевидно, он не сохраняет каждый новый выбор, когда вы продолжаете добавлять новые варианты.
Моя попытка добавить более 1 нового варианта также приведена ниже.
#### Simple working version of adding 1 new choice ####
choices <- c("x", "y", "z")
ui <- fluidPage(
selectizeInput("choices","Choices", choices = choices, multiple = TRUE),
textInput("new_choices", "New choices to add"),
actionButton("add_choices", "Add new choices")
)
server <- function(input, output,session) {
observeEvent(input$add_choices, {
req(input$new_choices)
choices <- c(choices, input$new_choices)
updateSelectizeInput(session, "choices", choices = choices)
})
}
shinyApp(ui = ui, server = server)
#### Not working version of sequentially adding new choices ####
choices <- c("x", "y", "z")
ui <- fluidPage(
selectizeInput("choices","Choices", choices = choices, multiple = TRUE),
textInput("new_choices", "New choices to add"),
actionButton("add_choices", "Add new choices")
)
server <- function(input, output,session) {
temp <- reactive({
choices
})
update_choices <- function() {
temp <- reactive({
c(temp, input$new_choices)
})
return(temp)
}
observeEvent(input$add_choices, {
req(input$new_choices)
temp <- update_choices()
updateSelectizeInput(session, "choices", choices = temp)
})
}
shinyApp(ui = ui, server = server)
Результат нерабочего кодав этом: Предупреждение: Ошибка в as.vector: невозможно принудительно привести тип «замыкание» к вектору типа «список» [нет трассировки стека]