如何在RPY2中获得索引向量,或者如果不存在,我如何选择两列?

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

  •  12-11-2019
  •  | 
  •  

我想在这里找到的r示例中做同样的事情: http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-slice 。他利用了MTCARS Datase,它看起来像这样:

               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 
.

在rpy2中检索一行很简单,在这种情况下获取mpg:

import rpy2.robjects as R
R.r['mtcars'][0]
. 但是,我不知道如何选择两列
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中获得索引向量,或者如果不存在,如何选择两列?

谢谢!

有帮助吗?

解决方案

在rpy邮件列表上回答。使用rx / rx2提取元素的R-Way(请注意,索引在R中的一个开始)。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top