如何在 rpy2 中将属性设置为向量

How to set an attribute to a vector in rpy2

如何使用 rpy2 向 python 中的向量添加属性。 作为示例,我如何重现此 R 代码:

library(evir)
pot<-c(2.0,3.2,4,5,6,7)
ts<-c(1,6,7,19,20,30)
attr(pot,"times")<-ts
output<-decluster(pot,run=2)

我在网上搜索了几个小时后找不到任何帮助。 我猜 Laurent 有答案 ;-)

使用属性slots。 S4 对象文档中关于它的描述适用于属性 (http://rpy2.readthedocs.org/en/version_2.7.x/notebooks/s4class.html)。

此处应适用于:

from rpy2.robjects.vectors import FloatVector, IntVector
pot = FloatVector((2.0, 3.2, 4, 5, 6, 7))
ts = IntVector((1,6,7,19,20,30))
pot.slots['times'] = ts

对于 rpy2 < 2.7,你应该使用 do_slot_assign :

pot.do_slot_assign("times",ts)