rtest = function(input ,output) {
a <- input
b <- output
outpath <- a+b
print(a+b)
return(outpath)
}
我刚刚返回这个R代码作为获取两个数字之和的函数。我尝试使用子进程从我的python代码运行此函数,方法是传递2个数字作为参数。但它不会将总和值作为返回输出返回。你知道通过传递函数参数在python3中实现它的任何方法。
我使用子进程的python代码是:
args=['3','10'] # (i tried to pass aruments like this)
command="Rscript"
path2script = '/...path/rtest.R'
cmd = [command, path2script] +args
x = subprocess.check_output(cmd, universal_newlines=True)
print(x)
但x返回''空值
答案 0 :(得分:0)
这可以通过python中的rpy2库轻松完成。
import rpy2.robjects as ro
path="specify/path to/ R file"
def function1(input,output):
r=ro.r
r.source(path+"rtest.R")
p=r.rtest(input,output)
return p
a=function1(12,12) # calling the function with passing arguments
谢谢。