我正在尝试从命令行运行R脚本(最终目标是在Python脚本的最后一行执行它)。 我不知道批处理文件是什么,也不知道如何使我的R脚本“可执行”。 目前,它被保存为.R文件。 当我从R运行它时,它能够正常工作。
我该如何从Windows命令提示符行执行此操作? 我需要下载一个名为Rscript.exe的东西吗? 我只需将我的R脚本保存为.exe文件吗? 请告诉我最简单的方法来实现这一点。
R:版本3.3 python:版本3.x 操作系统:Windows
我正在尝试从命令行运行R脚本(最终目标是在Python脚本的最后一行执行它)。 我不知道批处理文件是什么,也不知道如何使我的R脚本“可执行”。 目前,它被保存为.R文件。 当我从R运行它时,它能够正常工作。
我该如何从Windows命令提示符行执行此操作? 我需要下载一个名为Rscript.exe的东西吗? 我只需将我的R脚本保存为.exe文件吗? 请告诉我最简单的方法来实现这一点。
R:版本3.3 python:版本3.x 操作系统:Windows
command = 'C:/R-3.3/bin/Rscript.exe' # OR command = 'Rscript'
path2script = 'C:/Path/To/R/Script.R'
arg = '--vanilla'
# CHECK_CALL VERSION
retval = subprocess.check_call([command, arg, path2script], shell=True)
# CALL VERSION
retval = subprocess.call(["'Rscript' 'C:/Path/To/R/Script.R'"])
# POPEN VERSION (W/ CWD AND OUTPUT/ERROR CAPTURE)
curdir = 'C:/Path/To/R/Script'
p = subprocess.Popen(['Rscript', 'Script.R'], cwd=curdir,
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
output, error = p.communicate()
if p.returncode == 0:
print('R OUTPUT:\n {0}'.format(output.decode("utf-8")))
else:
print('R ERROR:\n {0}'.format(error.decode("utf-8")))
command = 'Rscript'
(不需要 .exe)而不是完整路径,因为您的命令提示符指示您在 PATH
变量中拥有 R。由于没有返回输出,因此 Python 控制台上不应显示任何内容。 - Parfait您已经拥有Rscript
,它随您的R版本一起安装。如果R.exe
、Rgui.exe
等在您的路径中,则Rscript.exe
也在其中。
您可以使用Rscript myFile.R
从Python中调用。Rscript比R BATCH CMD ...
和其他非常老旧和过时的用法更好。
popen()
和system()
等函数都可以调用它——这几乎就是PATH的作用。如何在Windows上调整PATH已经被多次解释过了。 - Dirk Eddelbuettel你可能已经拥有了R,因为你已经可以运行你的脚本。
你只需要找到它的二进制文件(Rscript.exe文件)。
然后打开Windows命令行([cmd] + [R] > 输入:"cmd" > [enter])
输入完整路径到R.exe,然后输入完整路径到你的脚本。
os.system
就可以使用,或者使用设置了shell=True
选项的subprocess.Popen
。当然,从脚本创建一个exe文件就可以立即使用我刚刚描述的两种方法,但在一些测试和修改阶段可能会很麻烦。 - Jean-François Fabre