5

Rでは、リストに要素を簡単に追加できます。

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

rpy2でこれを行うにはどうすればよいですか?rpy22.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))'
4

2 に答える 2

5

Rの"[[<-"演算子を使用する場合は、メソッドrx2()を呼び出す必要があります([割り当て、Rスタイル] [1]を参照)。

rpy2-2.2.0devでは、次のことができますa.rx2[1] = b

[1]: http: //rpy.sourceforge.net/rpy2/doc-2.2/html/vector.html#assigning-r-style割り当て、R-style

于 2011-02-23T14:38:22.793 に答える
1

現在のバージョンのrpy2でこれを実行できるかどうかはわかりませんが、Rリストとして機能し、アイテムの追加、削除、および再タグ付けをサポートするrpy2.rlike.container.TaggedListクラスを試すことができます。私の知る限り、リストとベクトルの割り当てにはバグがあるはずです。

于 2011-02-23T00:33:45.097 に答える