构建软件包时,仅将特定变量传递给闪亮的应用程序

时间:2018-11-16 08:56:04

标签: r shiny rstudio workspace scoping

我正在构建一个包含我的闪亮应用程序的软件包。

为此,我围绕“ 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"))
}

如何使用传递给包装器的变量让自己发亮?

1 个答案:

答案 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