【问题标题】:Allow Shiny numericInput to depend on another numericInput允许 Shiny numericInput 依赖于另一个 numericInput
【发布时间】:2018-03-02 04:41:31
【问题描述】:

我正在创建一个闪亮的应用程序,我希望 numericInput 的默认值依赖于先前定义的 numericInput 的另一个默认值。

例如,

在这里,我希望 (2) 的 numericInput 元素是 (1) 的倒数,而不必事先指定 valueminmaxstep 的值:

(1) numericInput("obs1", "Label1", value = 10, min = 10, max = 20, step = 1)

(2) numericInput("obs2", "Label2", value = 1/10, min = 1/10, max = 1/20, step = 1)

上面(1)是之前定义的numericInput

有没有简单的方法来做到这一点?

【问题讨论】:

    标签: shiny


    【解决方案1】:

    如果您希望input 对象具有动态参数,您需要使用uiOutput,以便您可以在运行时(在server.R )。

    示例:在第一列中,您可以设置minmaxvalue。修改其中任何一个都会使用新的参数值呈现 obs1obs2

    library(shiny)
    
    ui <- fluidPage(
      column(6, 
             tags$h2("Set parameters"),
             numericInput("value", "Value", value = 20, min = 10, max = 60, step = 10),
             numericInput("min", "Min", value = 10, min = 0, max = 30, step = 10),
             numericInput("max", "Max", value = 40, min = 40, max = 60, step = 10)
      ),
      column(6,
             uiOutput("ui")
      )
    )
    
    server <- function(input, output, session) {
      output$ui <- renderUI( {
        tagList(
          tags$h2("Numeric inputs that depend on reactive data"),
          numericInput("obs1", "Label1", value = input$value, min = input$min, max = input$max, step = 1),
          numericInput("obs2", "Label2", value = input$value + 5, min = input$min - 5, max = input$max + 5, step = 1)
        )
      })
    }
    
    shinyApp(ui, server)
    

    请注意,当您想将多个输入元素传递给renderUI 时,您需要将元素包装在tagList 中。

    【讨论】:

    • 如果除了用户能够输入他们自己的 numericInput 值之外,我还想让 numericInput 值依赖于上传文件中的值怎么办?在这种情况下,numericInputs 的值将由系统自动填写。思路一样吗?
    • 对,思路一模一样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多