Несколько условий в блестящей приборной панели

0
задан JK1185 5 March 2019 в 07:37
поделиться

2 ответа

Предполагая, что maxdays в основном возвращает позицию вашего выбора selectInput, вы можете сделать следующее:

library(shiny)

my_choices <- c(111, 222, 333)

ui <- fluidPage(
  selectInput('p_id', 'ID:', my_choices),
  uiOutput('uiID')
)

server <- function(input, output, session) {
  maxdays <- reactive(which(my_choices %in% input$p_id))

  output$uiID <- renderUI({
    selectInput('days', 'Days:', choices = seq(1,maxdays()))
  })
}

shinyApp(ui, server)
0
ответ дан thothal 5 March 2019 в 07:37
поделиться

Лучше не создавать объекты постоянно, используя renderUI, вместо этого мы можем просто обновить виджет:

library(shiny)

data <- c(111,222,333)
ui <- fluidPage(
  selectInput('p_id','ID:', data),
  selectInput('days','Days:', choices = NULL)
)

server = function(input, output, session) {

  observeEvent(input$p_id,{
    mseq <- seq(1,which(data %in% input$p_id))
    updateSelectInput(session,"days","Days:",choices = mseq)
  })

}
runApp(shinyApp(ui = ui, server = server))

enter image description here [115 ]

0
ответ дан Pork Chop 5 March 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: