3

ここにあるRの例と同じことをしたい: http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-slice。彼は、次のような mtcars データベースを利用しています。

               mpg cyl disp  hp drat   wt ... 
Mazda RX4     21.0   6  160 110 3.90 2.62 ... 
Mazda RX4 Wag 21.0   6  160 110 3.90 2.88 ... 
Datsun 710    22.8   4  108  93 3.85 2.32 ...

次に、インデックス ベクトルを使用して mpg および hp 列を選択します。

> mtcars[c("mpg", "hp")] 
                   mpg  hp 
Mazda RX4         21.0 110 
Mazda RX4 Wag     21.0 110 
Datsun 710        22.8  93 

この場合、mpg を取得するために、rpy2 で 1 行を取得するのは簡単です。

import rpy2.robjects as R
R.r['mtcars'][0]

ただし、2つの列を選択する方法がわかりません

import rpy2.robjects as R
R.r['mtcars'][R.vectors.IntVector([0,3])]

与える

TypeError: 'IntVector' object cannot be interpreted as an index

R.vectors にある他のすべてのベクトルと同じように (私はそれらすべてを試しました)

私の質問は、どうすれば rpy2 でインデックス ベクトルを取得できますか、それが存在しない場合、どうすれば 2 つの列を選択できますか?

ありがとう!

4

1 に答える 1

3

rpyメーリングリストで回答しました。rx / rx2を使用して、要素をR-wayで抽出します(インデックス付けはRの1つから始まることに注意してください)。

import rpy2.robjects as R
R.r['mtcars'].rx[R.vectors.IntVector([0,3]).ro + 1]
于 2012-02-29T08:49:28.557 に答える