簡體   English   中英

R Shiny-如何在渲染功能之間共享變量?

[英]R Shiny - how to share variables between Rendering functions?

我有從ui.R獲取的變量,我想在renderUI和renderPlot函數(例如下面)中使用它們,

shinyServer(

  function(input, output, session) {

  output$text <- renderUI({

      # Sites.
      site1 = input$site1
      site2 = input$site2
      site3 = input$site3
      site4 = input$site4

    })

    output$plot = renderPlot({

      # Sites.
      site1 = input$site1
      site2 = input$site2
      site3 = input$site3
      site4 = input$site4

    })

})

我必須重復兩次變量 ,有什么辦法可以將它們放在一個地方並在函數之間共享 如果將變量放在這些函數之外,將會出錯。

有任何想法嗎?

您可以創建另一個返回列表的反應式函數,如下所示:

shinyServer(
  function(input, output, session) {

    site <- reactive({
      unlist(list("site1" = input$site1, 
                  "site2" = input$site2, 
                  "site3" = input$site3, 
                  "site4" = input$site4))
    }

    output$text <- renderUI({
         site = site()
    })

    output$plot = renderPlot({
         site = site()
    })
})

然后,您只需執行site[1]即可調用site1

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM