是否可以在 R 函数中创建并启动 Shiny 应用程序?

问题描述 投票:0回答:1

我只是想知道是否可以在R函数中创建一个Shiny应用程序(即,环境或工作目录在函数运行时是临时的,并且在Shiny应用程序关闭后将被放弃)。

我已经测试了运行一个封装在函数中的 Shiny 示例的想法,并且它有效:

run_shiny_from_function <- function() {
  
  # 1. Variable defined in the function:
  x <- data.frame(name = "Eric", "Bee", "Tui")
  
  
  # 2. Run an example Shiny app:
  shiny::runExample("01_hello")
}

如果您运行此功能,将会启动一个示例 Shiny 应用程序:

run_shiny_from_function()

enter image description here

我的问题是,是否可以将

shiny::runExample("01_hello")
替换为使用父函数
x
中定义的数据框
run_shiny_from_function()
的自定义闪亮应用程序?

如果是这样,我该如何构建目录,以便嵌套的 Shiny App 可以找到定义的子函数以及要使用的数据?

想法是:

run_shiny_from_function <- function () { # 1. Variable defined in the function: x <- data.frame(name = "Eric", "Bee", "Tui") # 2. Pass the object as input data in a nested Shiny app: nested_shiny(input = x) { # Define UI for application that draws a histogram ui <- fluidPage( tableOutput(outputId = "data_table") ) # Define server logic required to draw a histogram server <- function(input, output) { output$data_table <- renderTable({ x # <- Here is where the x will go }) } shinyApp(ui = ui, server = server) } }
非常感谢任何评论。

r shiny
1个回答
0
投票
我不太明白

nested_shiny

函数的用途。无论如何,删除它会使代码正常工作:

run_shiny_from_function <- function () { x <- data.frame(name = "Eric", "Bee", "Tui") ui <- fluidPage( tableOutput(outputId = "data_table") ) server <- function(input, output) { output$data_table <- renderTable({ x # <- Here is where the x will go }) } shinyApp(ui = ui, server = server) }
如果您保留该函数,代码原则上也可以工作,但您需要

调用它,而您的代码则不需要。

© www.soinside.com 2019 - 2024. All rights reserved.