2013-06-26 79 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? –