У меня есть простое приложение, в котором пользователь выбирает имя игрока из (player_name
) выпадающего меню selectInput, а затем вы можете выбрать другие фильтры из selectInputs (season
) и радиокнопок (contested
), который отображает таблицу. Без использования кнопки отправки или действия в любом случае следует заметить, что значение player_name
изменилось, что приведет к сбросу значений season
и contested
в их значения по умолчанию? Обычно я использую условную переменную для ввода изменений, но в этой ситуации player_name
имеет тысячи игроков.Shiny R: Сброс других входных значений, когда значение selectInput изменения
0
A
ответ
0
Основное решением для этого является использование дополнительного uiOutput
«filters_UI» поставить второй selectInput и радиокнопки, а также добавить input$player_name
к нему, так что в любое время, что изменения имени игрока, полный uiOutput
будет созданы снова с начальные значения. См. Пример ниже.
library(shiny)
ui <- fluidPage(
fluidRow(
column(6, uiOutput('controls_UI')),
column(6, DT::dataTableOutput("table_DT"))
)
)
server <- shinyServer(function(input, output, session) {
# to simulate players
dat <- USJudgeRatings
players <- row.names(dat)
seasons <- names(dat)
output$controls_UI <- renderUI({
fluidRow(
column(6,
selectInput("player_name", "Players", players, selected = players[1])
),
column(6,
uiOutput("filters_UI"))
)
})
# render again if input$player_name changes
output$filters_UI <- renderUI({
input$player_name
fluidRow(
column(6,
selectInput("season", "Season", seasons, selected = seasons[1])
),
column(6,
radioButtons("contested", label = "Contested",
choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3),
selected = 1)
)
)
})
output$table_DT <- DT::renderDataTable(
datR(),
options = list(
scrollX = TRUE,
paging = TRUE,
lengthMenu = c(10, 20, 50)
),
selection = "single",
rownames = TRUE
)
# creates a table based on the sliders and radio buttons
datR <- reactive({
input$player_name
varName <- input$season
contested <- ifelse(is.null(input$contested),1,as.integer(input$contested))
dat0 <- data.frame(dat[sample(2:length(players),contested*3), varName])
names(dat0) <- varName
dat0
})
})
shinyApp(ui, server)
Надеюсь, это может вам помочь.
Смежные вопросы
- 1. selectInput in R shiny
- 2. R, Shiny: Inline selectInput
- 3. Динамический selectInput in R shiny
- 4. Shiny: SelectInput подмножество основано на входных
- 5. Сброс DataTable в R Shiny
- 6. Shiny R Сброс dataTableOutput
- 7. Имея два динамически selectInput in R shiny
- 8. условный список входных данных shiny r
- 9. R: составление списка уникальных значений, используемых в Shiny selectInput
- 10. R Shiny splitLayout и selectInput issue
- 11. R Shiny - Reactive selectInput data frame column
- 12. SelectInput и если контур участка R Shiny
- 13. Фильтрация из selectInput in R shiny
- 14. selectInput() ничего не передаёт selected_data() (R shiny)
- 15. R shiny load data.frame для selectInput
- 16. Shiny renderUI SelectInput не обновляется
- 17. Сброс анимации в Shiny R Studio
- 18. R shiny: selectInput - фрагменты javascript отображаются в пользовательском интерфейсе
- 19. Shiny renderUI selectInput возвращается NULL
- 20. Проблемы с selectInput in Shiny
- 21. R Shiny switch tabPanel when selectInput value changes
- 22. R Shiny: Сохранять/сохранять значения реактивных входов после изменения выбора
- 23. Уникальные значения, не работающие в R shiny selectInput
- 24. Как изменить ширину области вокруг SelectInput в R shiny
- 25. Shiny (R): Загрузить выделение в selectInput для локального компьютера
- 26. Отобразить все значения параметров, используя selectInput() в R Shiny
- 27. R Shiny selectInput возвращающий объект ошибки 'input' not found
- 28. R-Shiny два selectInput переменного с частичной зависимостью
- 29. Обновление вариантов для динамически созданных selectInput boxes в R Shiny
- 30. Назначение значений после ввода в R Shiny