在rpy2中向列表添加一个元素(向量)

5

在R中,我可以轻松地向列表中添加元素:

mylist = list()
mylist[[1]] = c(1,2)
mylist[[2]] = c(2,3)
mylist[[length(mylist)+1]] = c(3,4)

我该如何在rpy2中实现这个功能?我正在使用的是rpy2 2.1.9版本。我尝试了下面的方法,但它并不起作用。
import rpy2.robjects as robjects
a = robjects.r('list()')
b = robjects.IntVector([1,2])
a[0] = b
IndexError: Index out of range.
a[1] = b
IndexError: Index out of range.
aa = a.__add__(b) # But this makes a list out of the vector
aa.r_repr()
'list(1L, 2L)'
# We wanted something like the following instead:
aaa = robjects.r('list(c(1,2))')
aaa.r_repr()
'list(c(1, 2))'
2个回答

5

我不确定这如何帮助在列表中添加元素。 - highBandWidth
作为您试图模拟的 R 代码的等效物,它应该被宣传为... - lgautier
a.rx2(1)= b 不起作用,因为您无法对函数调用进行赋值。 - highBandWidth
1
我有Python 2.6.6,rpy2 2.1.9(在macports上最新的版本)。就是这样。 - highBandWidth
lgautier,我已经尝试编辑答案以反映解决方案。一旦编辑被批准,我将接受它。 - highBandWidth
显示剩余2条评论

1

我不确定您是否可以在当前版本的rpy2中完成此操作,但您可以尝试使用rpy2.rlike.container.TaggedList类,该类可以充当R列表并支持附加、删除和重新标记项目。据我所知,列表和向量的赋值必须存在错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接