Synthèse des exposés sur R

I. Python sur R : Package Reticulate

R et Python sont tous deux des langages de programmation, chacun d’eux conçus à la base pour effectuer des tâches spécifiques selon les besoins des utilisateurs. Le premier est connu pour ses techniques avancés en analyse statistiques, en manipulation et visualisation des données tandis que le second est plus orienté vers la data science, le développement d’application web, l’automatisation / scriping.

La question naturelle qui se pose est de savoir lequel des deux langages faut-il choisir ? Les deux langages ayant chacun sa spéficité, il est difficile de faire un choix. L’idéale sera de combiner les deux langages afin de tirer le meilleur de chacun des deux.

C’est ainsi que Kevin Ushey, JJ Allaire et Yuan TangD ont eu l’idée de développer un package sur R pouvant permettre l’utilisation de python sur R : Reticulate. Il fournit un ensemble assez complet d’outils pour assurer l’interopérabilité entre Python et R.

I.1. Etapes de configuration d’un environnement python sur R

reticulate::use_python("emplacement/de/python/dans/votre/machine")
virtualenv_create("mon/virtual/env")
reticulate::use_condaenv("nom/de/environnement/conda")

I.2. Comment utiliser python sur R ?

Après avoir configurer notre environnement python sur R, on peut utiliser python sur R de différentes manières:

(i) Exécuter un script python sur R

reticulate::py_run_file ("chemin/accès/au/script.py")

(ii) Installer et importer des modules python

reticulate::py_install("nom du module")
# importer un module
mod <- reticulate::import("nom du module")
# accéder aux fonctions contenus dans le module
mod$nom_fonction

(iii) Appeler depuis R, une fonction python contenu dans un script

# reférencer le script Python
reticulate::source_python("chemin d'accès au script")
# utiliser la fonction
result <- nom_fonction(arg1, arg2).

(iv) Ecrire exécuter un code python sur R-markdown dans un chunk python

(v) Exécuter du code python dans un script R avec la fonction py_run_string

reticulate::py_run_string("code")

(vi) Accéder à des objets python dans R et vice versa

objet = py$nom_objet_python
objet = r.nom_objet_R

(vii) Conversion des objets de python vers R et vice versa

# convertir un objet R en python
objet_py = reticulate::r_to_py(objet_r)
# convertir un objet Python en R
objet_r = reticulate::py_to_r(objet_py)