【问题标题】:R Shiny: Make radiobuttons impacts other inputR Shiny:使单选按钮影响其他输入
【发布时间】:2018-03-24 03:57:10
【问题描述】:

我正在做一些我闪亮的东西,我想知道是否可以让单选按钮决定另一个输入。

复制我的问题的玩具示例如下:

if (interactive()) {
  ui <- fluidPage(
    radioButtons("dist", "Distribution type:",
                 c("Normal" = "norm",
                   "Uniform" = "unif")),
     textInput(inputId = "textid", label = "Text input-header", value = "rnorm"),
    plotOutput("distPlot")
  )

  server <- function(input, output) {
    df <- reactive({
      switch(input$textid, 
             rnorm = {rnorm(500)},
             uni = {runif(500)}, 
             exp = {rexp(500)},
      )})

    output$distPlot <- renderPlot(hist(df())
    )
  }

  shinyApp(ui, server)
}

现在,文本框中的输入决定了用于生成数据的分布类型。我想要的是,当单击其中一个单选按钮时,文本框中的文本会更新(例如,如果“Uniform”被选中,那么 textunput 会用“uni”更新 - 因此使用此分布)。问题是我需要这个框,因为我希望能够在单选按钮中选择一些不是选项的东西(所以仅仅添加额外的单选按钮对我来说不起作用)。在这种情况下,额外的选项是,可以在文本输入中写入“exp”(不能从单选按钮中选择此分布)。

在这个例子中可能看起来有点愚蠢,但在我的例子中,我有 2 个经常使用的时间戳,但应用程序还必须允许用户选择每个可能的日期。

这有可能吗?

提前致谢!

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    这样的?请注意,我添加了req,其中需要将您的文本输入作为"rnorm","uni","exp"之一

    library(shiny)
    if (interactive()) {
      ui <- fluidPage(
        radioButtons("dist", "Distribution type:",c("Normal" = "rnorm","Uniform" = "uni","Exponential" = "exp")),
        textInput(inputId = "textid", label = "Text input-header", value = "rnorm"),
        plotOutput("distPlot")
      )
    
      server <- function(input, output,session) {
    
        observeEvent(input$dist,{
          updateTextInput(session, "textid",label = "Text input-header",value = input$dist)
    
        })
    
        df <- eventReactive(input$textid,{
          req(input$textid %in%c("rnorm","uni","exp"))
          switch(input$textid, rnorm = {rnorm(500)},uni = {runif(500)}, exp = {rexp(500)},
          )})
        output$distPlot <- renderPlot(hist(df()))
      }
      shinyApp(ui, server)
    }
    

    【讨论】:

    • 非常感谢! (没有指数单选按钮,这正是我想要的!)谢谢!
    猜你喜欢
    • 2013-09-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多