【发布时间】:2015-09-11 22:57:53
【问题描述】:
我想通过调用shinyApp() 函数来部署(到网络)一个在 R/Shiny 中创建的应用程序。
可以通过调用ShinyApp() 来制作应用程序,如下所示:
test_app = shinyApp(
ui = fluidPage(
numericInput("n", "n", 1),
plotOutput("plot")
),
server = function(input, output) {
output$plot <- renderPlot( plot(head(cars, input$n)) )
}
)
这将返回一个代表应用程序的对象,并且应用程序可以通过打印该对象来运行。我希望部署使用shinyapps::deployApp( test_app) 制作的应用程序,但这给了我以下错误:
Error in shinyapps::deployApp(test_app) :
appDir must be a single element character vector
这是因为 deployApp 函数需要一个目录而不是 shinyApp 对象。据推测,用于构建和部署应用程序的信息包含在 test_app 对象中,但检查该对象并没有透露太多信息,而且对于我创建的任何应用程序来说似乎都是一样的:
> str(test_app)
List of 4
$ httpHandler :function (req)
$ serverFuncSource:function ()
$ onStart : NULL
$ options : list()
- attr(*, "class")= chr "shiny.appobj"
>
生成应用程序的代码没有以任何明显的方式包含在该对象中。我怀疑答案可能与我不明白的 R6 参考类有关。
有人知道我如何从test_app 对象中提取应用程序中包含的信息,以便通过deployApp() 函数部署它吗? (或替代方法)
我已经在shinyApps users google 群组上发布了这个,但没有得到任何回应,所以我在这里再试一次。
【问题讨论】: