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 以更容易识别的名称。
我是一名统计学专业的学生,我在 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 以更容易识别的名称。