在 R Shiny 中动态创建单选按钮
Posted
技术标签:
【中文标题】在 R Shiny 中动态创建单选按钮【英文标题】:Dynamically create radio buttons in R shiny 【发布时间】:2022-01-11 14:25:13 【问题描述】:我目前正在 R 中修改 闪亮的仪表板,需要根据在我的 服务器类中创建的矢量内容动态创建单选按钮: p>
available_years <- c("2019", "2020", "2021")
output$available_years <- reactive(available_years)
outputOptions(output, "available_years", suspendWhenHidden = FALSE)
在 UI 类中,我想用它来创建这样的单选按钮:
fluidRow(
#Input Buttons for years
column(3,
radioButtons("radioYear", h4(paste("Available years:")),
choices = list("2019" = "2019",
"2020" = "2020",
"2021" = "2021")))
),
但不是硬编码它,我想用向量的长度而不是 3 和向量的内容而不是硬编码的 list。 就伪代码而言,它看起来像这样:
fluidRow(
#Input Buttons for years
column(length(output.available_years),
radioButtons("radioYear", h4(paste("Available years:")),
choices = list(for(i in length(output.available_years)
output.available_years[i] = output.available_years[i]
))))
),
感谢您的帮助!
【问题讨论】:
【参考方案1】:您可以在服务器函数中提供数据集以及render
命令,并在ui 函数中使用uiOutput
调用它们。这将使您能够根据向量动态获取值。
带有示例数据的代码:
Data <- c('2019', '2020', '2021', '2022')
ui <- fluidRow(
#Getting values from server function
uiOutput('radioYear')
)
server <- function(input, output)
output$radioYear <- renderUI(
Data <- Data
column(length(Data),
radioButtons("radioYear", h4(paste("Available years:")),
choices = Data))
)
shinyApp(ui, server)
【讨论】:
谢谢伊莎!成功了!以上是关于在 R Shiny 中动态创建单选按钮的主要内容,如果未能解决你的问题,请参考以下文章