【发布时间】:2017-02-18 14:24:50
【问题描述】:
我有一个 R 函数
square_num <- function(x) {
return(x*x)
}
当我通过 rpy2 运行它时:
from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage as STAP
string = """
square_num <- function(x) {
return(x*x)
}
"""
testy = STAP(string, "testy")
Jack = testy.square_num(10)
print(Jack)
它有效。
当我在 R 文件中有函数并使用它运行时
from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage as STAP
with open('Algo.r', 'r') as f:
string = f.read()
testy = STAP(string, "testy")
Jack = testy.square_num(10)
print(Jack)
我明白了:
Traceback (most recent call last):
File "Main.py", line 25, in <module>
testy = STAP(string, "testy")
File "/usr/local/lib/python2.7/dist-packages/rpy2/robjects/packages.py", line 290, in __init__
reval(string, env)
File "/usr/local/lib/python2.7/dist-packages/rpy2/robjects/packages.py", line 75, in reval
p = rinterface.parse(string)
rpy2.rinterface.RParsingError
两种情况下的功能相同。我只是将它复制并粘贴到一个 .r 文件中?
【问题讨论】: