Python 使用rpy2.rpy_classic将脚本从rpy转换为rpy2

Python 使用rpy2.rpy_classic将脚本从rpy转换为rpy2,python,r,rpy2,Python,R,Rpy2,谈到python,我有点新手,但我想将使用rpy的python脚本转换为使用rpy2的python脚本。我们确实在某处安装了rpy(用于Python2.6.x),但它与当前版本的R(3.2.0)的性能不太好。但是,我们确实为这些脚本中使用的python版本安装了rpy2(python 2.7[.5]) 据我所知,这些是需要更改的行(我已稍微简化了函数): 从rpy导入r r、 库(“”,悄悄地=真) r(“”)\ funcrpy\u classic在早期主要用于证明rpy2中的低级接口可用于实现

谈到python,我有点新手,但我想将使用rpy的python脚本转换为使用rpy2的python脚本。我们确实在某处安装了rpy(用于Python2.6.x),但它与当前版本的R(3.2.0)的性能不太好。但是,我们确实为这些脚本中使用的python版本安装了rpy2(python 2.7[.5])

据我所知,这些是需要更改的行(我已稍微简化了函数):

从rpy导入r
r、 库(“”,悄悄地=真)
r(“”)\

func
rpy\u classic
在早期主要用于证明rpy2中的低级接口可用于实现任何高级接口,包括
rpy
中的接口。它不是一个终极兼容性工具

使用rpy2的高级界面
robjects
,您的rpy代码如下所示:

from rpy2.robjects.packages import importr
from rpy2.robjects import r

lib=importr('<libname>')
rfunc=r("""
  function(x,a={options.a},b={options.b})  {{
    ... 
    *R code here* 
    ...
    l<-list(o=o,md=a+b) 
    l
  }}""".format(options=options))

out = rfunc(<python expression>).rx2('o')
从rpy2.robjects.packages导入导入
从rpy2.robjects导入r
lib=importr(“”)
rfunc=r(“”)
函数(x,a={options.a},b={options.b}){{
... 
*R代码在这里*
...

当我传递numpy对象时,我需要添加
import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()
,但这确实有效
out = r.func(<python expression>)['o']
import rpy2.rpy_classic as rpy

rpy.set_default_mode(rpy.NO_CONVERSION)

rpy.r.library('<libname>', quietly=True)
rpy.r("""\
func <- function(x,a={options.a},b={options.b})  {{
... 
*R code here* 
...
l<-list(o=o,md=a+b) 
l
}}""".format(options=options))
<rpy2.rpy_classic.Robj object at 0x2b9e48481510>
from rpy2.robjects.packages import importr
from rpy2.robjects import r

lib=importr('<libname>')
rfunc=r("""
  function(x,a={options.a},b={options.b})  {{
    ... 
    *R code here* 
    ...
    l<-list(o=o,md=a+b) 
    l
  }}""".format(options=options))

out = rfunc(<python expression>).rx2('o')