Как я могу получить вектор индекса в RPY2, или если это не существует, как я могу выбрать два столбца?
Вопрос
Я хочу сделать то же самое, что и в примере R, найденных здесь: http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-sllice .Он использует данные Datase 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, или если это не существует, как я могу выбрать два столбца?
Спасибо!
Решение
ответил на списке рассылки RPY.Используйте RX / RX2, чтобы извлечь элемент RX Way (обратите внимание, что индексация начинается в один в R).
import rpy2.robjects as R
R.r['mtcars'].rx[R.vectors.IntVector([0,3]).ro + 1]
.