68 votes

R et Python dans un Jupyter portable

Est-il possible de R et de code Python dans la même Jupyter ordinateur portable. Quelles sont toutes les solutions de rechange disponibles?

  1. Installer r-essentials et de créer des R les cahiers Jupyter.
  2. Installer rpy2 et l'utilisation rmagic fonctions.
  3. Utiliser un bécher ordinateur portable.

Qui de au-dessus de 3 options est fiable pour exécuter Python et R des extraits de code (partage de variables et de visualisations) ou est-il une meilleure option déjà?

86voto

uut Points 546

Oui, c'est possible! Utilisation rpy2.

Vous pouvez installer rpy2 avec: pip install rpy2

Ensuite, exécutez %load_ext rpy2.ipython dans l'une de vos cellules. (Vous n'avez qu'à exécuter ce qu'une fois.)

Maintenant, vous pouvez effectuer les opérations suivantes:

Python cellule:

# enables the %%R magic, not necessary if you've already done this
%load_ext rpy2.ipython

import pandas as pd
df = pd.DataFrame({
    'cups_of_coffee': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    'productivity': [2, 5, 6, 8, 9, 8, 0, 1, 0, -1]
})

R de la cellule:

%%R -i df -w 5 -h 5 --units in -r 200
# import df from global environment
# make default figure size 5 by 5 inches with 200 dpi resolution

install.packages("ggplot2", repos='http://cran.us.r-project.org', quiet=TRUE)
library(ggplot2)
ggplot(df, aes(x=cups_of_coffee, y=productivity)) + geom_line()

Et vous aurez votre jolie figure, tracer des données à partir d'un python Pandas DataFrame.

23voto

Abhimanu Kumar Points 700

À l'aide de @sat réponse à l'exécution de la R dans un jupyter ordinateur portable à l'intérieur de python noyau (sous MacOS), il a travaillé pour moi.

%%Rdoit toujours être au début de la cellule, sinon vous obtenez le message d'erreur comme indiqué dans la figure ci-dessoussyntax error if %%R not at the top of the cell

La suivante est la bonne façon:Right way to invoke R within python kernel

Aussi %load_ext rpy2.ipython avant %%R donc les mettre dans une autre cellule au-dessus d'elle, comme indiqué dans les chiffres.

13voto

Allen Wang Points 908

Mise à JOUR avril 2018,

RStudio a également mis en place un train: https://blog.rstudio.com/2018/03/26/reticulate-r-interface-to-python/

pour lesquels il est possible d'exécuter plusieurs morceaux de code dans différentes langues à l'aide de la R markdown ordinateur portable, qui est similaire à un jupyter ordinateur portable.

Dans mon précédent post, j'ai dit que la représentation sous-jacente des objets est différente. En fait, ici est une approche plus nuancée de la discussion de la matrice sous-jacente à la représentation de la R et python dans le même paquet: https://rstudio.github.io/reticulate/articles/arrays.html

Ancien post:

Il sera difficile pour vous d'utiliser à la fois R et la syntaxe de Python dans le même cahier, surtout parce que la représentation sous-jacente des objets dans les deux langues sont différentes. Cela dit, il y a un projet qui tente de permettre la conversion d'objets et de langues différentes dans le même bloc-notes: http://beakernotebook.com/features

Je ne l'ai pas utilisé moi-même, mais il semble prometteur

6voto

rm1104 Points 21

SoS noyau est une autre option.

Ne sais pas comment il effectue pourtant, tout a commencé à l'utiliser.

Le SoS du noyau permet d'exécuter de différentes langues dans le même cahier, y compris Python et R.

SoS Polyglotte Notebook - Instructions pour l'Installation de Langues Souhaitées

Voici un exemple d'un ordinateur portable avec Python et R des cellules.


*Mise à jour:

En termes de partage de variables, on peut utiliser les magies %use et %with. "SoS partage automatiquement les variables dont le nom commence par sos parmi tous les subkernels"1.

Ex.

Cellule de départ dans R:

%use R
sos_var=read.csv('G:\\Somefile.csv')
dim(sos_var)

Sortie:

51  13

Commutation de python:

%with Python3
sos_var.shape

Sortie:

(51, 13)

-1voto

Dmitry Petrov Points 481

Je recommande de ne pas utiliser les deux langues dans un seul Cahier. Au lieu de cela, vous pouvez orchestrer R et Python code au niveau du projet, en les connectant sur input\fichier de sortie de la base. La science des données des outils comme DVC peut vous aider pour le faire.

Vous pouvez trouver des exemples de code de ce blog: les Meilleures pratiques de l'orchestration de Python et R code dans les projets ML

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X