我想做与此处的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
在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中获得索引向量,或者如果不存在,我如何选择两列?
谢谢!
答案 0 :(得分:3)
在rpy邮件列表上回答。使用rx / rx2提取R-way元素(注意索引从R中的一个开始)。
import rpy2.robjects as R
R.r['mtcars'].rx[R.vectors.IntVector([0,3]).ro + 1]