簡體   English   中英

rpy2運行R功能

[英]rpy2 running R function

我有一個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文件中?

您是否檢查了Python變量string的內容?

以下應該工作:

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)

with open('algo.R', 'w') as fh_out:
    fh_out.write(string)

with open('algo.R', 'r') as f:
    string_again = f.read()

testy = STAP(string_again, "testy")

Jack = testy.square_num(10)
print(Jack)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM