Python 将R对象转换为列表
我有一个从Python运行的脚本:Python 将R对象转换为列表,python,r,matplotlib,rpy2,Python,R,Matplotlib,Rpy2,我有一个从Python运行的脚本: from rpy2.robjects.packages import importr binom = importr('binom') from rpy2 import robjects robjects.r('''library(binom) p = seq(0,1,.001) coverage = binom.coverage(p, 25, method="asymptotic")$coverage ''') R_P = robjects.r['p']
from rpy2.robjects.packages import importr
binom = importr('binom')
from rpy2 import robjects
robjects.r('''library(binom)
p = seq(0,1,.001)
coverage = binom.coverage(p, 25, method="asymptotic")$coverage
''')
R_P = robjects.r['p']
R_C = robjects.r['coverage']
我可以使用plt.scatter查看结果:
from rpy2.robjects.packages import importr
binom = importr('binom')
from rpy2 import robjects
robjects.r('''library(binom)
p = seq(0,1,.001)
coverage = binom.coverage(p, 25, method="asymptotic")$coverage
''')
R_P = robjects.r['p']
R_C = robjects.r['coverage']
但当我尝试绘制plt.plot时,我得到:
AttributeError: 'FloatVector' object has no attribute 'find'
R_C是一个:
R object with classes: ('numeric',) mapped to:
<FloatVector - Python:0x0000002CA644E448 / R:0x0000002CA14A6D38>
[1.000000, 0.024702, 0.048818, 0.072360, ..., 0.072360, 0.048818, 0.024702, 1.000000]
类('numeric',)映射到以下对象的R对象:
[1.000000, 0.024702, 0.048818, 0.072360, ..., 0.072360, 0.048818, 0.024702, 1.000000]
要获得R_C与R_p的直线图,我需要将其转换为列表吗?请告诉我该怎么做?谢谢JohanC,这很有效
plt.plot(list(R_P), list(R_C))
或
谢谢约翰,这很有效
plt.plot(list(R_P), list(R_C))
或
您如何调用
plt.plot
?当我尝试plt.plot(R\u C)
时,它是有效的。有趣的是@Jason,是的,plt.plot(R\u C)有效,但plt.plot(R\u P,R\u C)无效。我想用散点图把它们相对地画出来,就像散点图一样。也许是plt.plot(list(rup),list(ruc))
?@R.Cox,因为某种原因,当我运行plt.plot(rup,ruc)
时,它在我这边起作用。截图:。R_P和R_C是FloatVector
s并不重要,因为它们实现了\uuu getitem\uuuu
并像序列一样工作。此外,list
s也没有属性find
。如何调用plt.plot
?当我尝试plt.plot(R\u C)
时,它是有效的。有趣的是@Jason,是的,plt.plot(R\u C)有效,但plt.plot(R\u P,R\u C)无效。我想用散点图把它们相对地画出来,就像散点图一样。也许是plt.plot(list(rup),list(ruc))
?@R.Cox,因为某种原因,当我运行plt.plot(rup,ruc)
时,它在我这边起作用。截图:。R_P和R_C是FloatVector
s并不重要,因为它们实现了\uuu getitem\uuuu
并像序列一样工作。此外,list
s也没有属性find
。