【发布时间】:2011-04-13 16:58:18
【问题描述】:
问题:如何将 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'
感谢任何提示/帮助!
【问题讨论】:
-
如错误消息中所述,您不能将
FloatVector和float相乘。尝试将c显式转换为float- 像这样 -float(c)*10看看它是否有效。 -
那不是真的。做 :=> float(c)*10 给出:=> c:getsegcount 分段错误