Funktioniert mit Python und R.

Überlegen Sie, wie R und Python zusammenarbeiten

Kürzlich über Grundlegendes Datenplotten und Dateieingabe- / Ausgabemethode von R. erklärt.

Es gibt eine Tendenz, alles mit Python als Datenanalysesprache zu tun, aber es ist immer noch eine große Menge in der Vergangenheit Vermögenswerte von R sind attraktiv und nicht so leicht abzuschneiden.

Ein häufiger Fall ist, wenn Sie R für die partielle Datenanalyse verwenden möchten, aber die gesamte Programmierung in Python schreiben möchten. Möglicherweise möchten Sie R auch nur zum Plotten verwenden. In einem solchen Fall wäre es praktisch, wenn Python und R verknüpft werden könnten, um das Problem sofort zu lösen.

Bibliothek PypeR, die R aus Python verwendet

Es scheint, dass in der Vergangenheit eine Bibliothek namens RPy2 verwendet wurde, aber in letzter Zeit ist der Mainstream [PypeR](http: //www.webarray). org / software / PypeR /).

Installieren Sie PypeR

Die Installation ist einfach. Installieren Sie mit Package Manager pip.

pip install pyper

Übergeben Sie Daten von Python an R.

R Quellcode

Betrachten Sie den folgenden R-Code (Scatter.R).

png("image.png ", width = 480, height = 480,
    pointsize = 12, bg = "white", res = NA)
plot(data$WRAIN, data$LPRICE2, pch=16,
     xlab="Niederschlag von Oktober bis März des vorherigen Erntejahres",
     ylab="Weinpreis")
dev.off()

Dies ist ein einfacher R-Quellcode, der zwei Spalten aus Daten extrahiert, sie plottet und in eine PNG-Datei schreibt.

Python-Quellcode

Übergeben wir Daten an dieses R in Python und rufen das Objekt dann an die Python-Seite ab. Die Originaldaten sind eine CSV-Datei, in der der Weinpreis gespeichert ist und die von hier eingesehen werden kann.

import pyper
import pandas as pd

#Lesen Sie CSV-Daten mit Python
wine = pd.read_csv("wine.csv")

#Erstellen Sie eine Instanz von R.
r = pyper.R(use_pandas='True')

#Übergeben Sie ein Python-Objekt an R.
r.assign("data", wine)

#Führen Sie den R-Quellcode aus
r("source(file='scatter.R')")

Der in Python gelesene Inhalt von wine.csv wird jetzt an R übergeben und erfolgreich geplottet.

image.png

Lesen Sie R-Objekte aus Python

Python-Quellcode

Auf der anderen Seite möchten Sie möglicherweise das Ergebnis der R-Verarbeitung in Python abrufen. In solchen Fällen können Sie das R-Objekt mit der Methode r.get abrufen.

#Führen Sie den R-Code aus
r("res1 = cor.test(data$WRAIN, data$LPRICE2)")
r("data1 = subset(data, LPRICE2 < 0)")
r("res2 = cor.test(data1$WRAIN, data1$LPRICE2)")

#Lesen Sie R-Objekte in Python
res1 = pd.Series(r.get("res1"))
res2 = pd.Series(r.get("res2"))

print(res1)
#=>
#alternative                                  two.sided
#conf.int       [-0.258366126613384, 0.489798400688013]
#data.name                  data$WRAIN and data$LPRICE2
#estimate                                     0.1348919
#method            Pearson's product-moment correlation
#null.value                                           0
#p.value                                      0.5023297
#parameter                                           25
#statistic                                    0.6806807
#dtype: object

print(res2)
#=>
#alternative                                  two.sided
#conf.int       [-0.409535600260672, 0.364710477639889]
#data.name                data1$WRAIN and data1$LPRICE2
#estimate                                   -0.02636626
#method            Pearson's product-moment correlation
#null.value                                           0
#p.value                                      0.8982662
#parameter                                           24
#statistic                                   -0.1292127
#dtype: object

Diesmal habe ich Pandas benutzt, aber das ist nicht erforderlich. Es ist jedoch sehr nützlich, direkt mit R-ähnlichen Pandas-Objekten interagieren zu können.

Zusammenfassung

Sie können die Daten nur dann an R übergeben, wenn Sie sie benötigen, und dann das Ergebnis als Objekt an Python zurückgeben. Es ist viel bequemer, als die Daten in eine externe Datei zu schreiben und separat auszuführen. Die Verfügbarkeit von Rs Assets aus Python macht Python als Klebesprache immer nützlicher.

Referenz

Versuchen Sie, R aus Python mit Python + PypeR zu verwenden http://mia-0032.hatenablog.jp/entry/2013/08/30/000000

Ich möchte R von Python verwenden - aber RPy2 ist nicht gut. http://d.hatena.ne.jp/dichika/20130213/1360718736

Recommended Posts

Funktioniert mit Python und R.
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Python mit Pyenv und Venv
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Leuchtendes Leben mit Python und OpenCV
Roboter läuft mit Arduino und Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
Scraping mit Python, Selen und Chromedriver
Kratzen mit Python und schöner Suppe
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Hashing von Daten in R und Python
Lesen und Schreiben von NetCDF mit Python
Ich habe mit PyQt5 und Python3 gespielt
Lesen und Schreiben von CSV mit Python
Mehrfachintegration mit Python und Sympy
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Sugoroku-Spiel und Zusatzspiel mit Python
FM-Modulation und Demodulation mit Python
Kommunizieren Sie mit gRPC zwischen Elixir und Python
Datenpipeline-Aufbau mit Python und Luigi
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
FizzBuzz in Python3
Scraping mit Python
Überwachen Sie Mojo-Ausfälle mit Python und Skype
Statistik mit Python
FM-Modulation und Demodulation mit Python Part 3
[Automatisierung] Bearbeiten Sie Maus und Tastatur mit Python
Scraping mit Python
Passwortlose Authentifizierung mit RDS und IAM (Python)
Python mit Go
Python-Installation und Paketverwaltung mit pip
Verwenden von Python und MeCab mit Azure Databricks
Bilder mit Pupil, Python und OpenCV aufnehmen
Twilio mit Python
Fraktal zum Erstellen und Spielen mit Python
Ein Memo mit Python2.7 und Python3 in CentOS
In Python integrieren
Spielen Sie mit 2016-Python
Verwenden Sie PIL oder Pillow mit Cygwin Python
AES256 mit Python
Getestet mit Python
Erstellen und entschlüsseln Sie Caesar-Code mit Python
Python beginnt mit ()
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Lesen und Schreiben von JSON-Dateien mit Python
mit Syntax (Python)
Ich habe Numba mit Python3.5 installiert und verwendet
Tweet-Analyse mit Python, Mecab und CaboCha
Verkehrsüberwachung mit Kibana, ElasticSearch und Python
FM-Modulation und Demodulation mit Python Part 2
Visualisieren Sie Punkt P, der mit Python funktioniert
Zundokokiyoshi mit Python