将数据闪亮“加载”到numericInput-field

时间:2015-12-03 14:02:42

标签: r shiny

我是这个论坛的新手和一般的Shiny,所以我尽力提出我的问题,但随时可以提出我忘记提供的任何其他信息或提供反馈,以便将来改进我的问题。

我写了一个闪亮的小程序,其中我使用两个numericInput函数来设置一个Gate(基本上是下边界和上边框)。现在我想存储这些门以将它们用于其他数据集或其他选项卡。保存它们似乎很容易,但我无法将它们重新加载到numericInput字段中。

我通过使用if-operation绕过numericInput字段,以便我的程序使用全局门而不是numericInput值(也可以通过复选框选择) )但真正的目标是将数据放回numeriInput字段,以便能够对每个数据集的全局门进行小幅调整,而无需再次将字段输入字段。

我不知道这是否可能,但如果是,我希望有人知道答案。

我创建了这段小代码作为一个例子,它最终应该是什么样子,但却不知道如何让“Get Global”-Button工作。

server <- function(input, output){
  observe({
    if (input$setglobal==0){
      return()
    }

    isolate({
      global <- input$input1
      output$displayglobal <- renderText(global)
      })
    })
}

ui <- fluidPage(
  column(6, numericInput("input1", label="Lower Gate", value=0, step = 1),
  actionButton("setglobal", "Set as Global"), actionButton("getglobal", "Get Global")),
  column(6, h3("Global Value: "), textOutput("displayglobal"))
  )


shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:0)

reactiveValues()是一种存储数据的好方法,您需要使用闪亮服务器中的其他位置。它的功能类似于列表,但对值的更改会根据它们触发反应。这是一个简短的例子:

ui <- fluidPage(
  tabsetPanel(
    tabPanel("input",
             numericInput(inputId = 'input1', label = "Number", value = 0)
             ),
    tabPanel("output",
             textOutput("displayGlobal")
             )
  )
)

server <- function(input, output){

  vals <- reactiveValues(number = NULL)

  observeEvent(eventExpr = input$input1,
               handlerExpr = {
                 vals$number <- input$input1
               })

  output$displayGlobal <- renderText(paste0("Your Number is: ", vals$number))
}

shinyApp(ui = ui, server = server)