在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()
。
答案 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), ])
})
}
)