Come posso ottenere un indice in RPY2, o se ciò non esiste, come posso selezionare due colonne?

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

  •  12-11-2019
  •  | 
  •  

Domanda

Voglio fare la stessa cosa del r Esempio trovato qui: http://www.r-tutor.com/r-introduction/data-frame/data-frame-Column-slice .Fa uso del Datase MtCars che assomiglia a questo:

               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 quindi seleziona la colonna MPG e HP con un indice Vector

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

È semplice recuperare una riga in RPY2, per ottenere MPG in questo caso:

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

Tuttavia, non so come selezionare due colonne

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

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

Proprio come ogni altro vettore che è in r.vectors (li ho provato tutti)

Quindi la mia domanda si riduce, come posso ottenere un indice in RPY2, o se ciò non esiste, come posso selezionare due colonne?

Grazie!

È stato utile?

Soluzione

Risposta alla mailing list RPY.Utilizzare l'elemento RX / RX2 per estrarre il R-Way (nota che l'indicizzazione inizia a uno in r).

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top