Comment puis-je obtenir un vecteur d'index dans RPY2, ou si cela n'existe pas, comment puis-je sélectionner deux colonnes?

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

  •  12-11-2019
  •  | 
  •  

Question

Je veux faire la même chose que dans l'exemple r trouvé ici: http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-slice. Il utilise la base de données MTCARS qui ressemble à ceci:

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

Puis sélectionne la colonne MPG et HP avec un vecteur d'index

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

Il est simple de récupérer une ligne dans RPY2, pour obtenir MPG dans ce cas:

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

Cependant, je ne sais pas comment sélectionner deux colonnes

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

Donner

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

Tout comme tous les autres vecteurs qui se trouvent dans R. Vecteurs (je les ai tous essayés)

Donc, ma question se résume, comment puis-je obtenir un vecteur d'index dans RPY2, ou si cela n'existe pas, comment puis-je sélectionner deux colonnes?

Merci!

Était-ce utile?

La solution

Répondu sur la liste de diffusion RPY. Utilisez le RX / RX2 pour extraire l'élément de la voie R (notez que l'indexation commence à un en R).

import rpy2.robjects as R
R.r['mtcars'].rx[R.vectors.IntVector([0,3]).ro + 1]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top