2017-08-26 37 views
2

假設我有一個名爲test.R A R腳本,存放在C:\,具有以下內容:在Windows中運行通過終端R和離開R對話開放

x <- "Hello Stackoverflowers" 
print(x) 

要通過終端一個可以簡單地調用運行它:

Rscript C:\test.R 

和預期的一樣,其結果將是:

enter image description here

但是,我想知道是否有一種方法可以通過Windows控制檯運行test.R,但在那之後停留在執行的R會話中而不是關閉並返回到控制檯光標?也就是說,停留在R會話中,而不是在上面的圖像中返回到C:\R\R-3.4.1\bin>

例如,對於python.exe編譯Python代碼時,我可以很容易地通過-i參數傳遞給python.exe調用就可以完成類似的事情。

我怎麼能用R來做到這一點?

+0

目的是什麼?爲什麼不打開一個會話並改爲調用腳本? – cderv

+0

@cderv因爲我通過其他軟件自動化調用R腳本。 – Louis15

+0

你應該不需要在rscript調用之後仍然打開R會話。我不確定明白你爲什麼要這樣做。您目前的解決方案是從其他軟件調用R腳本 – cderv

回答

3

添加到您.Rprofile:

STARTUP_FILE <- Sys.getenv("STARTUP_FILE") 
if (file.exsts(STARTUP_FILE)) source(STARTUP_FILE) 

,然後設置所指示的環境變量R的外部,並且然後運行R.例如從Windows CMD線:

set STARTUP_FILE=C:\test.R 
R 
... R session ... 
q() 

變化

這方面有很多變化。例如,我們可以使.Rprofile文件的特定目錄複印件,例如:〜/測試,再說了,這個代碼添加到該副本

source("~/test/test.R") 

在這種情況下R.將僅運行test.R R從那個目錄開始。

+0

感謝您的回答。但是,該解決方案的問題在於它需要對每個文件進行這種修改。我應該明確指出,我需要這樣做才能做到這一點。我將更新有關我的用例的更多詳細信息。 – Louis15

+0

並非如此。只需設置環境變量,然後啓動R或編寫一個簡單的批處理文件即可。例如'(設置STARTUP_FILE = C:\ test.R)&& R'或者如果你的批處理文件被稱爲myR.bat然後運行'myR C:\ test.R' –