我在python中调用Rscript
。正常的电话很简单
retcode = subprocess.call("/usr/bin/Rscript --vanilla filename.r", shell=True)
但我遇到了处理HDFS R文件的挑战,所以我需要先读取文件,然后将整个代码组成一个字符串。当我尝试使用eval
时:
retcode = subprocess.call("/usr/bin/Rscript --vanilla -e \"eval(parse(text=" + rcode_string + "))\"", shell=True)
无论是否有parse
,R代码中的引号都会导致问题。 R代码中的每一个引号都是不可能的。有办法解决这个问题吗?
答案 0 :(得分:1)
您可以通过标准输入将代码直接发送到data HAVE;
amount_dollar = -2588;output;
amount_dollar = .;output;
amount_dollar = -24884;output;
amount_dollar = -21267;output;
amount_dollar = 70;output;
run;
。根据{{3}},如果您指定Rscript
作为文件名,它将从标准输入中读取。
从Python传递到标准输入看起来像这样:
-