我的问题似乎很基本,但是即使在rpy2文档上也找不到答案。 我有* .R脚本,可以接受一个参数作为“ file.txt”(我需要从命令行传递该参数)。我想在python脚本中调用R脚本。我的问题是: 如何传递和调理R脚本的参数? 我的解决方案是: 假设R脚本是从这一行开始的:
df <- read.table(args[1], header=FALSE)
"
here args[1] should be the file which is not passed from the command line
"
....
现在我在python脚本中编写一个函数:
from rpy2 import robjects as ro
def run_R(file):
r = ro.r
r.source("myR_script.R")
# how to pass the file argument to
# the R script and how to
# recuperate this argument in the R code?
答案 0 :(得分:0)
我的问题似乎很基本,但是即使在rpy2文档上也找不到答案。
但这可能是一个很好的起点:
(...)
df <- read.table(args[1], header=FALSE) " here args[1] should be the file which is not passed from the command line "
到达R时,命令行参数早已传递给R(因为R已被初始化并在那时运行)。文档中上面的链接是解决该问题的一种相对优雅的方法。否则,您总是可以在R中创建向量args
:
rpy2.robjects.globalenv['args'] = robjects.vectors.StrVector(['my_file.csv'])
r.source("myR_script.R")
答案 1 :(得分:0)
为什么只使用import cv2
cv2.imwrite('decrypted3.png', decrypted)
cv2.imshow("decrypted3", decrypted)
cv2.waitKey()
来运行R脚本?考虑避免使用此接口,而应使用自动rpy2
命令行,Python可以像任何外部可执行文件一样使用内置Rscript.exe
进行调用,即使传递所需的参数也是如此。
下面假设您在PATH环境变量中具有R bin文件夹,可以识别subprocess
。如果不是,请在 cmd 的第一个参数中添加此可执行文件的完整路径。另外,请确保将文件的完整路径传递给 run_R 方法:
Rscript