Rpy2 (Version 2.3.10) – Import von Daten aus R-Paket in Python

Also versuche ich, einige Daten aus einem R-Paket in Python zu importieren, um einige andere python-rpy2-Funktionen zu testen, die ich geschrieben habe. Insbesondere benutze ich das SpatialEpi Paket in R und das pennLC Dataset.

So konnte ich das rpy2 Paket importieren und das Paket korrekt anschließen. Allerdings bin ich mir nicht sicher, wie ich auf die Daten im Paket zugreifen kann.

 import rpy2.robjects as robjects from rpy2.robjects.packages import importr spep = importr("SpatialEpi") 

Allerdings kann ich nicht auf das Datenobjekt pennLC im SpatialEpi Paket SpatialEpi , um die Funktion zu testen. Der äquivalente R-Befehl wäre:

 data(pennLC) 

Irgendwelche Vorschläge.

2 Solutions collect form web for “Rpy2 (Version 2.3.10) – Import von Daten aus R-Paket in Python”

In R kann das Ausführen von data("foo") eine beliebige Anzahl von Objekten im Arbeitsbereich erzeugen. In rpy2 sind die Dinge in einer Umgebung enthalten. Das macht es sauberer.

 from rpy2.robjects.packages import importr, data spep = importr("SpatialEpi") pennLC_data = data(spep).fetch('pennLC') 

pennLC_data ist eine Environment (denke an sie als Namespace).

Um aufzurufen, was geholt wurde:

 pennLC_data.keys() 

Um das gewünschte Datenobjekt zu erhalten:

 pennLC_data['pennLC'] # guessing here, it might be a different name 

Also habe ich eine Antwort herausgefunden, die auf einer Anleitung von Laurents Botschaft basiert.

Ich benutze rpy2 Version 2.3.10, so dass einige Unterschiede aus Laurent's Code oben eingeführt. Hier ist was ich tat

 import rpy2.objects as robj from rpy2.robjects.packages import importr spep = importr('SpatialEpi', data = True) data = spep.__rdata__.fetch('pennLC') 

Erstens beachten Sie, dass es keine .data Methode in rpy2 2.3.10 – der Name könnte sich geändert haben. Stattdessen zeigt die 2.3.10-Dokumentation an, dass mit dem data=True Argument im importr ein PackageData Objekt unter .Package.__rdata__ . So I can do a .Package.__rdata__ . So I can do a on the rdata `Objekt .Package.__rdata__ . So I can do a Abruf machen .

Dann, wenn ich auf die Daten zugreifen möchte, kann ich den folgenden Code verwenden.

 data['pennLC'][1] In [43]: type(d['pennLC'][1]) Out[43]: rpy2.robjects.vectors.DataFrame 

Um die Daten anzuzeigen:

 print(data['pennLC'][1]) 
  • Erstellen Sie temporäre Dataframe mit rpy2: Speicher Problem
  • Rpy2-Fehler wac-a-mol: R_USER nicht definiert
  • Migration einer logistischen Regression von R nach rpy2
  • Konvertieren eines R ListVector in eine Python-Liste mit rpy2
  • Aufruf von benutzerdefinierten Funktionen von Python mit rpy2
  • Übersetzer benannte Listenvektoren von R in rpy2 in Python?
  • Konvertiere R Matrix zu Pandas Dataframe
  • Ausrichtung unterschiedlicher Nicht-Facetten-Plots in ggplot2 mit Rpy2 in Python
  • Aufspalten und Verketten von Dataframes in Python-Pandas für das Plotten mit rpy2
  • Wie kann theme_classic in rpy2 von ggplot2 zugegriffen werden?
  • Kann rpy2 code parallel laufen?
  • Python ist die beste Programmiersprache der Welt.