Est-il possible d’exécuter R et Python dans le même bloc-notes Jupyter. Quelles sont toutes les alternatives disponibles?
Laquelle des 3 options ci-dessus est fiable à exécuter Python et R) (variables de partage et visualisations) ou existe-t-il déjà une meilleure option?
Oui c'est possible! Utilisez RPY2.
Vous pouvez installer rpy2 avec: pip install rpy2
Puis lancez %load_ext rpy2.ipython
dans l'une de vos cellules. (Vous devez seulement exécuter cette fois.)
Maintenant, vous pouvez faire ce qui suit:
Cellule Python:
# 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]
})
Cellule R:
%%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 obtiendrez votre jolie figure en traçant les données d’un python Pandas DataFrame.
En utilisant la réponse de @ uut pour exécuter R dans un cahier jupyter dans python du noyau (sous MacOS), les opérations suivantes ont fonctionné pour moi.
%%R
_ devrait toujours être au début de la cellule, sinon vous obtiendrez l’erreur indiquée dans la figure ci-dessous
Ce qui suit est la bonne façon:
Également %load_ext rpy2.ipython
devrait venir avant %%R
donc placez-le dans une cellule différente au-dessus, comme indiqué sur les figures.
UPDATE avril 2018,
RStudio a également publié un package: https://blog.rstudio.com/2018/03/26/reticulate-r-interface-to-python/
pour lequel il est possible d'exécuter plusieurs fragments de code dans différentes langues à l'aide du bloc-notes R markdown, similaire à un bloc-notes jupyter.
Dans mon précédent post, je disais que la représentation sous-jacente des objets est différente. En fait, voici une discussion plus nuancée de la représentation matricielle sous-jacente de R et python du même paquet: https://rstudio.github.io/reticulate/articles/arrays. html
Ancien post:
Vous aurez du mal à utiliser les syntaxes R et Python dans le même bloc-notes, principalement parce que la représentation sous-jacente des objets dans les deux langages est différente. Cela dit, il existe un projet qui essayez d'autoriser 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 ça a l'air prometteur
Le noyau SoS est une autre option.
Je ne sais pas comment il fonctionne encore, je viens juste de commencer à l'utiliser.
Le noyau SoS vous permet d’exécuter différentes langues dans le même bloc-notes, notamment Python et R.
SoS Polyglot Notebook - Instructions pour l’installation des langues souhaitées
Voici un exemple de bloc-notes avec cellules Python et R .
*Mise à jour:
En termes de partage de variables, on peut utiliser la magie %use
et %with
. "SoS partage automatiquement les variables avec des noms commençant par sos parmi tous les sous-noyaux" 1 .
Ex.
Cellule de départ en R:
%use R
sos_var=read.csv('G:\\Somefile.csv')
dim(sos_var)
Sortie:
51 13
Passage en python:
%with Python3
sos_var.shape
Sortie:
(51, 13)