试图在Python中运行R脚本

时间:2018-02-26 19:06:15

标签: python r subprocess

我有一个R脚本,输出我想在Python中运行的CSV。

例如,假设R脚本只是创建一个数据帧并将CSV文件输出到我的桌面。

sample.r

x <- c(1,2,4)
y <- c("A","B","C")
z <- data.frame(x,y)
write.csv(z,"c:/users/username/dekstop/z.csv)

我想知道如何在Python中调用R脚本来创建输出。

我尝试过使用下面的功能,但是没有创建CSV文件。

import subprocess
subprocess.call ("/usr/bin/Rscript --vanilla path/sample.r", shell=True)

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用多种方法来执行此操作。但我认为将R文件设置为正确的可执行文件不仅可以解决python问题,还可以解决其他语言问题。因此,为R安装了很棒的docopt,这样可以很容易地指定命令行参数并实现它们并生成如下文件:

#!/usr/bin/env Rscript

require(docopt)
'Usage:
    test.R [-o <output>]

Options:
    -o Output file [default: sim_data.csv]

 ]' -> doc

 opts <- docopt(doc)

 x <- c(1,2,4)
 y <- c("A","B","C")
 z <- data.frame(x,y)
 write.csv(z, opts$o)

将文件保存为test.R并使其可执行(Unix / Linux):

chmod +x test.R

从命令中运行

./test.R -o path/to/save.csv

参见帮助

./test.R -h

来自Python

import os
cmd = './test.R -o path/to/save.csv'
os.system(cmd)