Fonctionne avec Python et R

Réfléchissez à la façon dont R et Python fonctionnent ensemble

Récemment, à propos de Basic data plotting et File input / output method par R expliqué.

Il y a une tendance à tout faire avec Python comme langage d'analyse de données, mais c'est encore une grande partie du passé Les actifs de R sont attrayants et pas si facilement tronqués.

Un cas courant est celui où vous souhaitez utiliser R pour une analyse partielle des données, mais que vous souhaitez écrire toute la programmation en Python. Vous pouvez également utiliser R pour le traçage uniquement. Dans un tel cas, il serait pratique que Python et R puissent être liés pour résoudre le problème à la fois.

Bibliothèque PypeR qui utilise R de Python

Il semble qu'une bibliothèque appelée RPy2 a été utilisée dans le passé, mais récemment, le courant dominant est [PypeR](http: //www.webarray. org / logiciels / PypeR /).

Installez PypeR

L'installation est simple. Installez avec le gestionnaire de package pip.

pip install pyper

Passer des données de Python à R

Code source R

Considérez le code R suivant (scatter.R).

png("image.png ", width = 480, height = 480,
    pointsize = 12, bg = "white", res = NA)
plot(data$WRAIN, data$LPRICE2, pch=16,
     xlab="Précipitations d'octobre à mars de l'année de récolte précédente",
     ylab="Prix du vin")
dev.off()

Il s'agit d'un simple code source R qui extrait deux colonnes des données, les trace et les écrit dans un fichier .png.

Code source Python

Passons les données à ce R en Python, puis récupérons l'objet côté Python. Les données originales sont un fichier CSV qui permet d'économiser le prix du vin et peuvent être consultées depuis ici.

import pyper
import pandas as pd

#Lire les données CSV avec Python
wine = pd.read_csv("wine.csv")

#Créer une instance de R
r = pyper.R(use_pandas='True')

#Passer un objet Python à R
r.assign("data", wine)

#Exécutez le code source R
r("source(file='scatter.R')")

Le contenu de wine.csv lu en Python est maintenant passé à R et tracé avec succès.

image.png

Lire des objets R depuis Python

Code source Python

D'un autre côté, vous voudrez peut-être récupérer le résultat du traitement R en Python. Dans de tels cas, vous pouvez récupérer l'objet R avec la méthode r.get.

#Exécuter le code R
r("res1 = cor.test(data$WRAIN, data$LPRICE2)")
r("data1 = subset(data, LPRICE2 < 0)")
r("res2 = cor.test(data1$WRAIN, data1$LPRICE2)")

#Lire des objets R en 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

Cette fois, j'ai utilisé des pandas, mais ce n'est pas obligatoire. Cependant, pouvoir interagir directement avec des objets pandas de type R est très utile.

Résumé

Vous pouvez transmettre les données à R uniquement lorsque vous en avez besoin, puis renvoyer le résultat sous forme d'objet à Python. C'est beaucoup plus pratique que d'écrire les données dans un fichier externe et de l'exécuter séparément. La disponibilité des ressources de R à partir de Python rend Python de plus en plus utile en tant que langage de collage.

référence

Essayez d'utiliser R de Python avec Python + PypeR http://mia-0032.hatenablog.jp/entry/2013/08/30/000000

Je veux utiliser R de Python - mais RPy2 n'est pas bon - http://d.hatena.ne.jp/dichika/20130213/1360718736

Recommended Posts

Fonctionne avec Python et R
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
python avec pyenv et venv
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
Grattage avec Python, Selenium et Chromedriver
Grattage avec Python et belle soupe
Encodage et décodage JSON avec python
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Hashing de données en R et Python
Lire et écrire NetCDF avec Python
J'ai joué avec PyQt5 et Python3
Lire et écrire du CSV avec Python
Intégration multiple avec Python et Sympy
Coexistence de Python2 et 3 avec CircleCI (1.0)
Jeu Sugoroku et jeu d'addition avec Python
Modulation et démodulation FM avec Python
Communiquez entre Elixir et Python avec gRPC
Construction de pipeline de données avec Python et Luigi
Calculer et afficher le poids standard avec python
FizzBuzz en Python3
Grattage avec Python
Surveiller les pannes de Mojo avec Python et Skype
Statistiques avec python
Modulation et démodulation FM avec Python Partie 3
[Automation] Manipulez la souris et le clavier avec Python
Grattage avec Python
Authentification sans mot de passe avec RDS et IAM (Python)
Python avec Go
Installation de Python et gestion des packages avec pip
Utilisation de Python et MeCab avec Azure Databricks
Capturer des images avec Pupil, python et OpenCV
Twilio avec Python
Fractal pour faire et jouer avec Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Intégrer avec Python
Jouez avec 2016-Python
Utilisez PIL ou Pillow avec Cygwin Python
AES256 avec python
Testé avec Python
Créer et décrypter du code César avec python
python commence par ()
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Lire et écrire des fichiers JSON avec Python
avec syntaxe (Python)
J'ai installé et utilisé Numba avec Python3.5
Analyse des tweets avec Python, Mecab et CaboCha
Surveillance du trafic avec Kibana, ElasticSearch et Python
Modulation et démodulation FM avec Python Partie 2
Visualisez le point P qui fonctionne avec Python
Zundokokiyoshi avec python