`system()`interactive.exe/binary from R/Rgui

`system()`interactive.exe/binary from R/Rgui,r,R,我想在R中使用system()运行一个交互式二进制文件 通过交互式,假设我想从R中运行python命令行解释器(谁知道为什么,但无论如何…) 当我从命令行(即Rterm)运行R时,我可以像这样启动python解释器: > system('python.exe') Python 2.7.2 on win32 Type "help", "copyright", "credits" or "license" for more information. >>> # I can n

我想在R中使用
system()
运行一个交互式二进制文件

通过交互式,假设我想从R中运行python命令行解释器(谁知道为什么,但无论如何…)

当我从命令行(即Rterm)运行R时,我可以像这样启动python解释器:

> system('python.exe')
Python 2.7.2 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> # I can now type in python commands and basically use the python 
    # interpreter until I've had enough. 
    # Now I'll exit the python interpreter:
>>> exit()
> # Presto, I'm back to the R prompt!
关键是,我可以从R与python解释器交互,就像我首先从命令行启动解释器一样,当我返回R提示符时,我可以退出它

现在,让我们对R GUI进行同样的尝试:

> system('python.exe')
Python 2.7.2 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
> # eh? it exitted?
这只是运行python.exe(显示欢迎消息),但随后立即退出-我无法与python解释器交互

我的问题是——是否有任何方法(在R GUI中,即windows one中)运行该解释器并与之交互,就像在R的任何命令行版本中一样


(仅供参考-当我第一次开始学习如何编写R软件包时,作为我的第一个R软件包,我的目标就是能够在R中玩。工作得很好(我使用linux&因此使用命令行R),除非我将其带到windows RGui,否则它将启动进程,但不具有交互性,有效地锁定了R,直到我强制结束NetHack.exe进程。)

我解决了这个问题-必须阅读windows下的帮助文件(原来unix和windows
?系统不同):

不要尝试运行需要用户从
Rgui
设置
intern=TRUE
show.output.on.console=TRUE
输入的控制台应用程序。它们不会起作用

因此,看起来我(无论如何从Rgui)得到的最好结果是一个新窗口正在启动:

system('NetHack.exe',invisible=FALSE,wait=FALSE)
我将添加一个
if(.Platform$GUI==“Rgui”)
检查并适当设置参数


(Huzzah,继续NetHackR的任务!)

我可以通过执行
system('python.exe',invisible=FALSE,wait=FALSE)
来运行它,但这确实会在一个新的命令提示符窗口中启动整个过程,而我更希望它在R终端上运行。我非常确定,使用Rgui是不可能实现您想要的。