Как я могу получить вектор индекса в RPY2, или если это не существует, как я могу выбрать два столбца?

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

  •  12-11-2019
  •  | 
  •  

Вопрос

Я хочу сделать то же самое, что и в примере 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]
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top