如何在Shiny中将输入添加到单选按钮选择中?

时间:2019-05-20 09:02:10

标签: r shiny

对于Shiny来说,我还很陌生,对于正在构建的应用程序,我需要将输入添加到radioButton选择中。

这是我的radioButton的代码:

values <- c("Carbs" = "carbs", "Proteins" = "prots", "BMI" = "bmi"),
radioButtons("plotVal", "What value do you want to plot?", choices = values)

我想添加一个输入字段。如果用户找不到正确的选择,则可以输入自己的值。最终结果将是这样的:

  

您想绘制什么值?

     

O碳水化合物

     

O蛋白

     

O BMI

     

O [其他...]

[Other ...]选项为textInput

我已经在网上搜索并阅读了所有教程,以获取所发现的输入信息,但是我没有发现这种特殊情况。谁能帮我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用updateRadioButtons

library(shiny)

values <- c("Carbs" = "carbs", "Proteins" = "prots", "BMI" = "bmi")

ui <- fluidPage(
  radioButtons("plotVal", "What value do you want to plot?", choices = values),
  textInput("other", "Type in additional category"),
  actionButton("add", "Add category")
)

server <- function(input, output, session) {
  observeEvent(input$add, {
    req(input$other)
    otherVal <- "other"
    names(otherVal) <- input$other
    updatedValues <- c(values, otherVal)
    updateRadioButtons(session, "plotVal", choices = updatedValues)
    })
}

shinyApp(ui = ui, server = server)