¿Cómo puedo obtener un vector de índice en RPY2, o si eso no existe, ¿cómo puedo seleccionar dos columnas?

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

  •  12-11-2019
  •  | 
  •  

Pregunta

Quiero hacer lo mismo que en el ejemplo R que se encuentra aquí: http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-slice .Hace uso del DATASE MTCARS que se parece a esto:

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

y luego selecciona la columna MPG y HP con un vector de índice

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

Es fácil recuperar una fila en RPY2, para obtener MPG en este caso:

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

Sin embargo, no sé cómo seleccionar dos columnas

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

da

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

Al igual que todos los demás vectores que están en R.Vectors (los probé a todos)

Así que mi pregunta se reduce a, ¿cómo puedo obtener un vector de índice en RPY2, o si eso no existe, ¿cómo puedo seleccionar dos columnas?

¡Gracias!

¿Fue útil?

Solución

Respondido en la lista de correo rpy.Use el elemento RX / RX2 para extraer el elemento R-WAY (tenga en cuenta que la indexación se inicia en uno en R).

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top