2010-12-04 4 views
7

Mein Datenrahmen ist Umfragedaten, die ich aus einer CSV-Datei habe. Eine der Spalten ist Alter und ich suche alle Befragten unter 18 Jahren zu entfernen. Ich muss dann Altersgruppen (18-24, 25-35 usw.) in ihre eigenen Datenfelder eingrenzen, für die ich Häufigkeitsverteilungen durchführen kann.Auswählen einer bestimmten Zeile aus einem rpy2-Datenrahmen

The R code is simple enough:

x.sub <- subset(x.df, y > 2) 

Aber ich kann nicht herausfinden, wie die r() Funktion verwenden, um meinen Datenrahmen Variable aus Python in eine R Aussage. Es fühlt sich an, als müsste in der rpy2 DataFrame-Klasse eine .subset() -Funktion vorhanden sein. Aber wenn es existiert, kann ich es nicht finden.

Antwort

10

Mit rpy2 2.2.0-dev (sollte das gleiche mit 2.1.x sein)

from rpy2.robjects.vectors import DataFrame 
dataf = DataFrame.from_csvfile("my/file.csv") 

dataf_subset = dataf.rx(dataf.rx2("age").ro >= 18, True) 

Dass man genau Beispiel ist in der Dokumentation nicht (und kann sollte es sein), aber es ist enden Elemente sind: extracting elements und R operators on vectors

+0

Ich sehe. Danke, dass du das erklärt hast. Geschätzt. – forestfanjoe