2013-06-26 74 views
6

如何運行R腳本以強制會話進行交互。 ?interative中的文檔說--ess--interactive控制這一點,但我沒有看到任何效果。強制交互式R會話

的Windows:

C:\Program Files\R\R-3.0.1\bin>R -e "interactive()" --ess -s 
[1] FALSE 

的Mac:

$ R -e "interactive()" --interactive -s 
[1] FALSE 

有什麼想法?

編輯: 我想可以破解可能適用於某些事情的基本命名空間(如install.packages)。但是,這是一個貧窮的藉口,一個解決方案...

$ R -e "unlockBinding('interactive',as.environment('package:base'));assign('interactive',function() TRUE,envir=as.environment('package:base'));base::interactive()" --interactive -s 
[1] TRUE 
+2

爲什麼你需要運行'interactive()'爲true的腳本? –

+0

如果你需要用戶輸入,你可以使用'file(「stdin」)'。這與使用'stdin()'不同,它將在運行腳本時跳過。 –

+0

@MatthewPlourde:它出現了一些其他的東西,如默認圖形設備,什麼不是。 –

回答

4

想出了我們敬愛的littler替代Rscript也就是說,然後我添加了一個切換:

[email protected]:~$ r -p -e 'interactive()' 
[1] FALSE 
[email protected]:~$ r -i -p -e 'interactive()' 
[1] TRUE 
[email protected]:~$ 

它可能是,在調用時總是將其設置爲false,因此可以調用R

+0

humm,...那麼,如果R命令沒有按照他們的意思行事,那麼R命令的意義是什麼? –

+0

也許問一下r-devel? –