有没有办法调用在文件中定义的函数,比如myfunc.r?
---------------myfunc.r --------------
myfunc = function(){
return(c(1,2,3,4,5,6,7,8,9,10))
}
getname = function(){
return("chart title")
}
---- Python
How to call getname() here ?
任何帮助都将不胜感激?
rpy2有一些特性可以帮助使这个过程更加清晰,而不是将对象倾泻到全局工作空间中。
from rpy2.robjects.packages import STAP
# if rpy2 < 2.6.1 do:
# from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
# STAP = SignatureTranslatedAnonymousPackage
with open('myfunc.r', 'r') as f:
string = f.read()
myfunc = STAP(string, "myfunc")
现在可以使用 myfunc.myfunc
和 myfunc.getname
访问 R 文件中的对象。
请查看有关将任意 R 代码导入为软件包的文档。
SignatureTranslatedAnonymousPackage
这个名字有点长,我想对于 R 和 Python 开发者来说 :) - agstudyimport rpy2.robjects as robjects
robjects.r('''
source('myfunc.r')
''')
r_getname = robjects.globalenv['getname']
那么你就称它为
r_getname()
R-3.2.2
和rpy2=2.7.0
:) - Sudipta Basak我建议使用user3282437在这里提到的方法:
import rpy2.robjects as robjects
r_source = robjects.r['source']
r_source('/path_to_file/myfunc.R')
r_getname = robjects.globalenv['getname']
我不确定这是一个全局性的问题,但在我的Windows机器上,像agstudy建议的直接调用:
import rpy2.robjects as robjects
robjects.r('source("some_file.R")')
myfunc
函数? - agstudy