2015-11-05 17 views
0

如何使用rpy2向python中的向量添加屬性。 作爲一個例子,我怎麼可以重現該R代碼:如何在rpy2中將屬性設置爲向量

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有答案;-)

回答

1

使用屬性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) 
+0

不與rpy2 2.4.3 :( – egouden

+0

'PIP安裝rpy2 --upgrade工作' – lgautier

+0

這對我的系統來說並不是那麼容易;-)你能指定答案中所需的最低版本嗎? Thx – egouden

相關問題