Como posso obter um vetor de índice em rpy2 ou, se não existir, como posso selecionar duas colunas?

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

  •  12-11-2019
  •  | 
  •  

Pergunta

Quero fazer a mesma coisa que no exemplo R encontrado aqui: http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-slice.Ele faz uso do banco de dados mtcars que se parece com isto:

               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 ...

E então seleciona a coluna mpg e hp com um vetor de índice

> mtcars[c("mpg", "hp")] 
                   mpg  hp 
Mazda RX4         21.0 110 
Mazda RX4 Wag     21.0 110 
Datsun 710        22.8  93 

É simples recuperar uma linha em rpy2, para obter mpg neste caso:

import rpy2.robjects as R
R.r['mtcars'][0]

No entanto, não sei como selecionar duas colunas

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

TypeError: 'IntVector' object cannot be interpreted as an index

Assim como qualquer outro vetor que está em R.vectors (tentei todos eles)

Então, minha pergunta se resume a: como posso obter um vetor de índice em rpy2 ou, se isso não existir, como posso selecionar duas colunas?

Obrigado!

Foi útil?

Solução

Respondido na lista de discussão rpy.Use rx/rx2 para extrair o elemento R-way (observe que a indexação começa em um em R).

import rpy2.robjects as R
R.r['mtcars'].rx[R.vectors.IntVector([0,3]).ro + 1]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top