Skip to main content
 首页 » 编程设计

python之使用 rpy2 将 R 对象转换为 Python 对象

2025年05月04日15jiqing9006

问题:如何将 R 对象转换为 python 对象

我的情况:我需要将 cor.test() 的结果用于 python 例程。

correlation = robjects.r('function(x, y) cor.test(x, y)') 
corr= correlation(robjects.IntVector(goodtotemp), robjects.IntVector(goodGDPs)) 
print corr 
 
print corr[3] 
print 'coef:',type(corr[3]) 

如预期的输出:

     cor  
0.984881  
coef: <class 'rpy2.robjects.vectors.FloatVector'> 

但是,我不能将 corr[3] 用作 python 对象,

c=corr[3] 
print 'c:',c*10., type(c) 

看(这是我如何知道我做错了什么!),输出:

c: 
Traceback (most recent call last): 
  File "./GDPAnalyzer.py", line 234, in <module> 
    print 'c:',c*10., type(c) 
TypeError: unsupported operand type(s) for *: 'FloatVector' and 'float' 

感谢任何提示/帮助!

请您参考如下方法:

段错误应该被报告为 rpy2 错误。否则,请尝试:

c.ro * 3 

或:

c[0] * 3