当另一个应用程序的app.R保存在新应用程序中时,为什么Shiny应用程序不起作用?

时间:2015-07-20 00:51:15

标签: r shiny

我注意到每当我想创建一个新的闪亮应用程序时,我必须在新的app文件夹中创建一个新的app.R文件。如果我将'app.R保存为新文件夹中另一个闪亮的应用程序,并根据当前用途进行修改,则会创建UI但服务器似乎无法正常工作。那是为什么?

1 个答案:

答案 0 :(得分:2)

看看按下"运行应用程序" button - 在控制台中执行的命令是shiny::runApp(appDir)。它没有专门运行app.R文件,但它运行整个目录。这是您第一次看到这种行为的暗示--Shiny希望将应用程序作为目录而不是文件运行,因此当您在同一文件夹中有不同的应用程序文件时,原始应用程序可能仍然存在跑步。

这引导我调查runApp函数。如果您查看runApp的文档,您会看到第一个参数是appDir

  

应用程序的目录。应该包含server.R,plus,   ui.R或包含文件index.html的www目录。   或者,代替server.R和ui.R,目录可能包含   只是app.R.默认为工作目录。而不是目录,   这可能是一个包含ui和服务器组件的列表,或者是一个Shiny应用程序   对象由shinyApp创建。

所以你有它 - runApp(因此"运行应用程序"按钮)使用目录作为Shiny应用程序的参数。 Shiny希望这个目录有server.Rui.R或只有app.R,但它没有说明当你有一个或多个{的组合时的行为{ {1}}或者不是上述内容,所以你应该避免这种情况。