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.
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 /).
Die Installation ist einfach. Installieren Sie mit Package Manager pip.
pip install pyper
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.
Ü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.
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.
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.
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