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

StackOverflow https://stackoverflow.com/questions/9435004

  •  12-11-2019
  •  | 
  •  

質問

ここで見つかった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を取得するために、1行を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.vectorにある他のすべてのベクトルと同じように(私はそれらすべてを試しました)

だから私の質問は降りるのにどのようにして、rpy2でインデックスベクトルを取得することも、存在しない場合は2列を選択できますか?

ありがとう!

役に立ちましたか?

解決

RPYメーリングリストで回答しました。RX / RX2を使用して要素をR-WAYで抽出します(索引付けはRで1つの1つで始まります)。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top