我正在构建一个包含我的闪亮应用程序的软件包。
为此,我围绕“ shiny :: runApp”调用构建了一个包装器,但不幸的是,光泽应用程序使用了全局工作区变量。 我希望包装器函数使用我赋予函数的变量(如果未补充则报错),并将其用于闪亮。例如,这里需要x,y和z(具有默认值):
Shiny_wrapper <- function(x,y,z=TRUE){
shiny::runApp(appDir = system.file("shinyApp", package = "WebFlood"))
}
我通过将变量分配给全局工作区来解决此问题,但我认为这不是正确的方法:
Shiny_wrapper <- function(x,y,z=TRUE){
x<<-x
y<<-y
z<<-z
shiny::runApp(appDir = system.file("shinyApp", package = "WebFlood"))
}
如何使用传递给包装器的变量让自己发亮?
答案 0 :(得分:1)
您可以在包中定义一个环境,并使用它来传递一些变量。
FEATURE_GROUPS:
- "advanced"
然后在闪亮的应用程序中(在PKGENVIR <- new.env(parent=emptyenv())
#' @export
Shiny_wrapper <- function(x,y,z=TRUE){
PKGENVIR$x <- x
PKGENVIR$y <- y
PKGENVIR$z <- z
shiny::runApp(appDir = system.file("shinyApp", package = "WebFlood"))
}
或global.R
中):
server.R