Python-Schnittstelle für R Programmiersprache

Diese Frage hat hier schon eine Antwort:

  • Wie können Rpy2, Pyrserve und PypeR vergleichen? 4 antworten

Ich bin ganz neu bei R, und so ziemlich python verwendet. Ich bin nicht so bequem schriftlich R-Code. Ich bin auf der Suche nach Python-Schnittstelle zu R, die mich R-Pakete in pythonischer Weise verwenden lässt .

Ich habe Google Research gemacht und habe einige Pakete gefunden, die das machen können:

Aber nicht sicher, welches ist besser? Was hat mehr Mitwirkende und mehr aktiv?

Bitte beachten Sie meine Hauptanforderung ist pythonisch für den Zugriff auf R-Pakete .

3 Solutions collect form web for “Python-Schnittstelle für R Programmiersprache”

Wie von @lgautier hervorgehoben, gibt es bereits eine andere Antwort zu diesem Thema . Ich lasse meine Antwort hier, da es die Erfahrung der Annäherung an R als Anfänger, wissend Python zuerst fügt hinzu.


Ich benutze Python und R und sympathisiere mit deiner Notwendigkeit als Neuling zu R.

Da jede Antwort, die du bekommst, subjektiv sein wird, fass ich ein paar Punkte aus meiner Erfahrung zusammen:

  • Ich benutze rpy2 als meine Schnittstelle und finde es ist "Pythonic", stabil, vorhersehbar und effektiv genug für meine Bedürfnisse. Ich habe die anderen Pakete nicht benutzt, also ist dies kein Kommentar zu ihnen, sondern auf die Vorzüge von rpy2 selbst.
  • Aber nicht erwarten, dass es eine einfache Möglichkeit der Verwendung von R in Python ohne zu lernen, beide. Ich finde, dass das Hinzufügen einer Schnittstelle zwischen den beiden Sprachen ermöglicht eine einfache Codierung, wenn Sie beide wissen, aber ein Albtraum von Debugging für jemanden, der in einer der Sprachen mangelhaft ist.

Mein Rat:

  1. Für die meisten Anwendungen hat Python Pakete, die es Ihnen erlauben, die meisten Dinge zu tun, die Sie in R machen möchten, von Daten, die zu Plotten streiten. Schauen Sie sich SciPy , NumPy , Pandas , BioPython , Matplotlib und andere wissenschaftliche Pakete oder sogar die volle Anaconda oder Enthought Python Distributionen. Dies ermöglicht Ihnen, innerhalb der Python-Umgebung zu bleiben und bietet Ihnen die meisten der Kraft, die Sie benötigen.
  2. Gleichzeitig werden Sie R's umfangreiche Palette von spezialisierten Pakete, so verbringen einige Zeit lernen es in einer interaktiven Umgebung. Ich fand es fast unmöglich, sogar grundlegende R auf der Kommandozeile zu beherrschen, aber RStudio und die Tutorials bei Quick-R und Learn-R haben mich sehr schnell geholt.

Sobald Sie beide kennen, dann werden Sie Magie mit rpy2 ohne die Schrecken der Cross-Sprache Debugging zu tun.


Neue Ressourcen

Update am 29 Jan 2015

Diese Antwort hat sich als beliebt erwiesen und so dachte ich, es wäre sinnvoll, auf zwei neuere Ressourcen hinzuweisen:

  • Ralph Heinkel hat bei EuroPython 2014 ein tolles Gespräch zu diesem Thema gegeben. Das Video über die Kombination der mächtigen Welten von Python und R steht auf dem EuroPython YouTube-Kanal zur Verfügung . Zitiert ihn:

Das Triplet R , Rserve und pyRserve ermöglicht den Aufbau einer Netzwerkbrücke von Python zu R: Jetzt können R-Funktionen von Python aufgerufen werden, als ob sie in Python implementiert wurden und sogar komplette R-Skripte über diese Verbindung ausgeführt werden können.

  • Es ist jetzt möglich, R und Python mit rmagic in IPython/Jupyter zu kombinieren, was die Arbeit der Herstellung von reproduzierbaren Forschung und Notebooks, die beide Sprachen kombinieren, sehr erleichtert.

Eine Frage zum Vergleich von rpy2, pyrserve und pyper mit einander wurde auf der Seite früher beantwortet.

In Bezug auf die Anzahl der Mitwirkenden würde ich sagen, dass alle 3 eine relativ kleine Zahl haben. Eine Website wie Ohloh kann eine detailliertere Antwort geben.

Wie aktiv ein Paket benutzt wird, ist schwierig zu bestimmen. Ein Hinweis könnte die Anzahl der Downloads sein, eine andere könnte die Anzahl der Beiträge auf Mailinglisten oder die Anzahl Fragen auf einer Website wie Stackoverflow, die Anzahl der anderen Pakete, die es verwenden oder zitieren, die Anzahl der CVs oder Job-Öffnungen erwähnen die Paket. So viel wie ich glaube, dass ich eine faire Bewertung geben könnte, könnte ich auch als Interessenkonflikt gesehen werden. 😉

Alle drei haben ihre Vor-und Nachteile. Ich würde sagen, dass du dich dafür entscheidest.

Meine persönliche Erfahrung war mit Rpy , nicht Rpy2 . Ich habe es für eine Weile benutzt, aber setzte es für die Verwendung von system . Ein typischer Fall für mich war ein FORTRAN-Modell mit Python-Skripten und Nachbearbeitung mit R. In meiner Erfahrung war die einfachste Lösung, ein Kommandozeilen-Tool mit R zu erstellen, was ganz einfach ist (zumindest unter Linux). Das Kommandozeilen-Tool konnte im Stamm des Routput ausgeführt werden, und das Skript würde einen Satz von R-Objekten und Plots in einem Routput Verzeichnis Routput . Der Vorteil der Trennung von R und Python auf diese Weise war, dass ich leicht den R-Code getrennt aus dem Python-Code zu debuggen.

Ich denke, Rpy scheint wirklich, wenn eine Menge hin und her Kommunikation zwischen R und Python benötigt wird. Aber wenn die Funktionalität ist gut trennbar, und der Overhead der Festplatte i / o ist nicht so schlecht, würde ich auf system Anrufe zu bleiben. Siehe ?system für weitere Informationen zu Systemaufrufen und Rscript zum Ausführen von R-Skripten als Befehlszeilentool.

In Bezug auf Ihren Wunsch, R-Code in einem Python-Weg zu schreiben, ist dies nicht möglich, da alle Lösungen Sie benötigen, um R-Code in R-Syntax zu schreiben. Für Rpy bedeutet dies R-Syntax, aber ein wenig anders (z. B.). Ich stimme mit @gauden, dass es keine Abkürzung bei der Verwendung von R durch Rpy .

  • Rpy2-Fehler wac-a-mol: R_USER nicht definiert
  • Rpy2 kann das 'rgl' R-Paket nicht importieren
  • Wie kann theme_classic in rpy2 von ggplot2 zugegriffen werden?
  • Passliste von python zu R bis rpy2
  • Rpy2 (Version 2.3.10) - Import von Daten aus R-Paket in Python
  • Rpy2, R und Ubuntu 12.04 - Ungültige substring -fopenmp
  • Umwandlung einer Python-Liste in einen R-numerischen Vektor
  • Übergeben einer Python-Variablen auf R mit rpy2
  • Rpy2 Fehler: "unerkanntes Escape in Zeichenfolge"
  • Wie können Rpy2, Pyrserve und PypeR vergleichen?
  • R-Ausgabe als Spalten lesen
  • Python ist die beste Programmiersprache der Welt.