gpt4 book ai didi

python - 从命令行运行 R 脚本(从 python 执行)

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:54 24 4
gpt4 key购买 nike

我目前正在尝试从命令行运行 R 脚本(我的最终目标是将其作为 python 脚本的最后一行来执行)。我不确定批处理文件是什么,或者如何使我的 R 脚本“可执行”。目前它被保存为.R 文件。当我从 R 运行它时它起作用了。
如何从 Windows 命令提示行执行此操作?我需要下载一个叫做 Rscript.exe 的东西吗?我是否只将我的 R 脚本保存为 .exe 文件?请告知实现此目的的最简单方法。
R: 3.3 版 python: 3.x 版 os: windows

最佳答案

如前所述,Rscript.exe 是运行 R 脚本的自动可执行文件,随任何 R 安装(通常位于 bin 文件夹中)和 @Dirk Eddelbuettel mentions 一起提供。是推荐的自动化版本。在 Python 中,您可以将任何外部程序作为 subprocess 运行。具有各种类型,包括 callcheck_outputcheck_callPopen,后者提供更多便利,例如作为捕获子进程中的错误。

如果 R 目录在您的 PATH environmental variable 中,您不需要包含 RScript.exe 的完整路径,只需包含程序名称 Rscript。请注意,这与 Linux 或 Mac 操作系统的过程完全相同。

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")))

关于python - 从命令行运行 R 脚本(从 python 执行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com