1

我是一名統計學生,我在R Shiny中創建了一個應用程序,按照http://blog.analytixware.com/2014/03/packaging-your-shiny-app-as-windows.html的描述執行了所有步驟,並遇到以下問題:chrome portable does not open,my應用程序運行良好,併爲一些數字,即0.3928118打開它在記事本中得到以下我可以使用它,但是一個新的文件被創建的每個I按下vbs.run時間,它被命名爲:R Shiny as Windows Desktop App創建文本文件時出現警告

proc.time() user system elapsed 3.55 0.26 9.48

然而在我的代碼中,我不使用任何地方的proc.time()函數。當我嘗試刪除文件時 - 除非重新啓動我的電腦,否則我無法做到。該錯誤說:「該操作無法完成,因爲該文件在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)

注:我添加的行1和2 runShinyApp.R因爲在那個陌生的文件我也會得到加載閃亮......注意等,這已經刪除它們。

我會很感激,如果我已經嘗試了一切,並花了幾個星期試圖使其工作,我不知道是怎麼回事錯在這裏,你可以給我個忙......

+0

你試過了'suppressPackageStartupMessages(require(shiny,quietly = TRUE,warn.conflicts = FALSE))? – Tutuchan

+0

謝謝你的建議@Tutuchan。運行時,它出現以下錯誤: '加載所需的程序包:光澤 聽力上http://127.0.0.1:8888 ERROR:[on_request_read]通過對等連接 復位> proc.time() 用戶系統已過去 3.69 0.29 5.69' – Ivona

+0

這很奇怪。通常從R啓動應用程序時,應用程序是否正常工作? – Tutuchan

回答

0

這個在您的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)。您可以通過在簡單的R文件上運行R CMD BATCH來測試此操作。

在你的情況下,輸出文件的名稱是使用VBScript函數RND指定的,這就是你得到隨機名的原因。 AFAICT,沒有辦法不生成outfile,只要R批處理正在運行(只要Shiny會話持續),文件就被鎖定,所以你不能刪除它。如果您用Rscript替換R CMD BATCH,您可能會檢查Shiny是否仍然有效。

除非您擔心最終用戶被他們機器上奇怪文件的外觀所嚇倒,否則它是無害的,您應該不必擔心它的存在。如果需要,您可以更改您的VBScript以更明顯地命名它。

+0

謝謝你的回覆。應用程序沒有運行時,將我的vbs更改爲Randomize CreateObject(「Wscript.Shell」)。運行「R-Portable \ App \ R-Portable \ bin \ R.exe Rscript --vanilla --slave runShinyApp.R」 「」&RND&「」,0,False' 我想擺脫那個文件的原因是因爲我嘗試創建一個.exe文件來運行這個vbs,並且這是不可能的當每個新文件被創建時時間。你對這件事有任何想法嗎? – Ivona

+0

@Ivona不是'R-Portable \ App \ R-Portable \ bin \ R.exe Rscript',而是'R-Portable \ App \ R-Portable \ bin \ Rscript.exe'。 – tchakravarty

+0

Now my ** run.vs **: 'Randomize CreateObject(「Wscript.Shell」)。運行「R-Portable \ App \ R-Portable \ bin \ Rscript.exe CMD BATCH --vanilla --slave runShinyApp .R「&」「&RND&」「,0,假' 沒有文件被創建,應用程序也沒有啓動。 – Ivona