我希望能够使用window.location.href
类型函数将参数传递给我的Shiny应用程序。
例如,我希望能够使用:
### http://econometricsbysimulation.shinyapps.io/OLS-App/?nobs=500
告诉应用启动要在500
模拟的观察次数。
感谢您提供的任何帮助,
弗朗西斯
答案 0 :(得分:0)
在您的服务器功能中,您需要传递session
参数。 session$clientData
然后包含session$clientData$url_search
,其中包含相关信息。有一个实用程序函数parseQueryString
,可用于解析数据:
library(shiny)
runApp(port = 5678, list(ui = fluidPage(
headerPanel("Shiny Client Data"),
column(6,
h3("clientData values"),
verbatimTextOutput("summary"),
h3("Parsed URL query"),
verbatimTextOutput("queryText")
),
column(6,
plotOutput('myPlot'))
)
, server = function(input, output, session){
output$summary <- renderText({
cnames <- names(session$clientData)
allvalues <- lapply(cnames, function(name) {
item <- session$clientData[[name]]
if (is.list(item)) {
list_to_string(item, name)
} else {
paste(name, item, sep=" = ")
}
})
paste(allvalues, collapse = "\n")
})
output$queryText <- renderText({
query <- parseQueryString(session$clientData$url_search)
paste(names(query), query, sep = "=", collapse=", ")
})
output$myPlot <- renderPlot({
query <- parseQueryString(session$clientData$url_search)
if('nobs' %in% names(query)){
plot(runif(as.integer(query$nobs)))
}else{
plot(runif(100))
}
})
}
))
您可以运行上面的代码。该应用可在http://127.0.0.1:5678
上查看。导航到http://127.0.0.1:5678?nobs=15
,您可以看到正在运行的查询字符串: