我只是想知道是否可以在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()
我的问题是,是否可以将
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)
}
}
非常感谢任何评论。
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)
}
如果您保留该函数,代码原则上也可以工作,但您需要调用它,而您的代码则不需要。