用rpy2将R对象转换为Python对象

| 问题:如何将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
    
Python确实不支持ѭ6的概念。确实,在某些有限的情况下,它确实会执行某些操作,例如使用内置类型进行转换。 但是除此之外,程序员还需要将对象从一种形式转换为另一种形式,或者创建某种形式的Facade或shim对象,使R对象的行为像Python一样。 尝试使用ѭ7来查看正在使用的Python类型。它可能只是数字的字符串表示形式,在这种情况下,您可以使用
eval()
将其转换为浮点数。     

要回复问题请先登录注册