我有一个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)
感谢任何帮助。
答案 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)