R Shiny as Windows 桌面应用程序创建带有警告的文本​​文件

R Shiny as Windows Desktop App Creates Text File With Warning

我是一名统计学专业的学生,​​我在 R Shiny 中创建了一个应用程序,按照 http://blog.analytixware.com/2014/03/packaging-your-shiny-app-as-windows.html 完成了描述的所有步骤并遇到了以下问题:chrome 便携式确实打开了,我的应用程序运行良好,我可以使用它,但是每次我按 vbs.run 时都会创建一个新文件,它被命名为某个数字,即 0.3928118 在记事本中打开它会产生以下结果:

proc.time() user system elapsed 3.55 0.26 9.48

但是,在我的代码中,我没有在任何地方使用 proc.time() 函数。当我尝试删除文件时 - 除非我重新启动我的电脑,否则我无法删除。错误显示:"The action can't be completed because the file is open in Google Chrome Portable"。我的 run.vbs 文件如下所示:

Randomize CreateObject("Wscript.Shell").Run "R-Portable\App\R-Portable\bin\R.exe CMD BATCH --vanilla --slave runShinyApp.R" & " " & RND & " ", 0, False

我的 runShinyApp.R 看起来像:

require(shiny,quietly = TRUE, warn.conflicts = FALSE) require(shinyjs,quietly = TRUE, warn.conflicts = FALSE) .libPaths("./R-Portable/App/R-Portable/library") browser.path = file.path(getwd(),"GoogleChromePortable/GoogleChromePortable.exe") options(browser = browser.path) shiny::runApp("./Shiny/",port=8888,launch.browser= TRUE,quiet=TRUE)

注意:我在 runShinyApp.R 中添加了第 1 行和第 2 行,因为在那个奇怪的文件中我也会得到 Loading shiny...... note 等,这已经删除了它们。

如果你能帮我解决这个问题,我将不胜感激,因为我已经尝试了所有方法并花了数周时间试图让它发挥作用,但我不知道这里出了什么问题...

这是您的 VBScript 代码中的相关行:

CreateObject("Wscript.Shell").Run "R-Portable\App\R-Portable\bin\R.exe CMD BATCH --vanilla --slave runShinyApp.R" & " " & RND & " ", 0, False

当您 运行 R CMD BATCH foo.R 它会默认生成一个 foo.Rout 文件,其中包含您复制的信息 (https://stat.ethz.ch/R-manual/R-devel/library/utils/html/BATCH.html)。您可以通过 运行ning R CMD BATCH 在一个简单的 R 文件上进行测试。

在您的例子中,输出文件的名称是使用 RND VBScript 函数指定的,这就是您获得随机名称的原因。 AFAICT,没有办法不生成输出文件,只要 R 批处理过程是 运行ning(只要 Shiny 会话持续),文件就会被锁定,所以你不能删除它。如果将 R CMD BATCH 替换为 Rscript,您可能会检查 Shiny 是否仍然有效。

除非您担心您的最终用户会被他们机器上出现的奇怪文件吓到,否则它是无害的,您可能不应该担心它的存在。如果需要,您可以更改 VBScript 以更容易识别的名称。