将URL参数传递给闪亮的绘图功能

时间:2016-04-20 10:59:49

标签: r shiny

this回答之后,我正在尝试创建一个应用程序,根据我将通过网址传递给应用的值输出一个情节

library(shiny)

shinyApp(
  ui = fluidPage(
    mainPanel(
      plotOutput("plot")
    )
  ),
  server = function(input, output, session) {
    observe({
      query <- parseQueryString(session$clientData$url_search)
      if (!is.null(query[['text']])) {
        n <- query[['text']]
      }
    })
    output$plot <- renderPlot({
      # Add a little noise to the cars data
      plot(cars[sample(nrow(cars), n), ])
    })
  }
)

但我不知道应该在何处/如何存储/传递变量n的值,以便将其从observe()转移到renderPlot()

1 个答案:

答案 0 :(得分:1)

试试这个。请注意,n被定义为每会话全局变量,并注意全局赋值运算符<<-

library(shiny)

shinyApp(
    ui = fluidPage(
        mainPanel(
            plotOutput("plot")
        )
    ),
    server = function(input, output, session) {
        n <- 5
        observe({
            query <- parseQueryString(session$clientData$url_search)
            if (!is.null(query[['text']])) {
                n <<- query[['text']]
            }
        })
        output$plot <- renderPlot({
            # Add a little noise to the cars data
            plot(cars[sample(nrow(cars), n), ])
        })
    }
)