经过七个小时的谷歌搜索和重读有些类似的问题,然后经过大量的反复试验,我现在很乐意寻求一些指导。
为了简化我的实际任务,我创建了一个非常基本的R脚本(名为test_script):
x <- c(1,2,3,4,5)
avg <- mean(x)
write.csv(avg, file = "output.csv")
这可以按预期工作。
我是python的新手,我只想弄清楚如何执行R脚本,以便创建相同的.csv文件。
值得注意的结果来自:
subprocess.call(["C:/Program Files/R/R-2.15.2/bin/R", 'C:/Users/matt/Desktop/test_script.R'])
这将打开一个cmd窗口,其中包含典型的R启动条款,但有一条消息显示为“ARGUMENT'C:/Users/matt/Desktop/test_script.R'__ ignore __”
和
subprocess.call(['C:/Program Files/R/R-2.15.2/bin/Rscript', 'C:/Users/matt/Desktop/test_script.r'])
这会闪烁cmd窗口并返回0,但不会创建.csv文件。
否则,我已经尝试了我在本网站或任何其他网站上可以识别的所有建议。任何见解将不胜感激。提前感谢您的时间和精力。
答案 0 :(得分:3)
在命令提示符下运行R --help
会打印:
Usage: R [options] [< infile] [> outfile]
or: R CMD command [arguments]
Start R, a system for statistical computation and graphics, with the
specified options, or invoke an R tool via the 'R CMD' interface.
Options:
-h, --help Print short help message and exit
--version Print version info and exit
...
-f FILE, --file=FILE Take input from 'FILE'
-e EXPR Execute 'EXPR' and exit
FILE may contain spaces but not shell metacharacers.
Commands:
BATCH Run R in batch mode
COMPILE Compile files for use with R
...
尝试
call(["C:/Program Files/R/R-2.15.2/bin/R", '-f', 'C:/Users/matt/Desktop/test_script.R'])
还有一些其他可以传递给R的命令行参数可能会有所帮助。运行R --help
查看完整列表。
答案 1 :(得分:0)
可能为时已晚,但希望对其他人有所帮助:
只需在通话清单中添加--vanilla
即可。
subprocess.call(['C:/Program Files/R/R-2.15.2/bin/Rscript', '--vanilla', 'C:/Users/matt/Desktop/test_script.r'])