tutorial notebook lab hub examples descargar python r python-2.7 ipython jupyter-notebook

notebook - R y Python en un cuaderno de Jupyter



jupyter python 3 (5)

¿Es posible ejecutar código R y Python en el mismo bloc de notas Jupyter? ¿Cuáles son todas las alternativas disponibles?

  1. Instala r-essentials y crea blocs de notas R en Jupyter.
  2. Instala rpy2 y usa las funciones rmagic.
  3. Utilice un cuaderno de precipitados.

¿Cuál de las 3 opciones anteriores es confiable para ejecutar fragmentos de código Python y R (compartiendo variables y visualizaciones) o ya existe una opción mejor?


¡Sí, es posible! Utilice rpy2.

Puedes instalar rpy2 con: pip install rpy2

Luego ejecute %load_ext rpy2.ipython en una de sus celdas. (Solo tienes que correr esto una vez.)

Ahora puedes hacer lo siguiente:

Célula de 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] })

Célula 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()

Y obtendrás tu bonita figura dibujando datos desde un Pandth DataFrame de Python.


ACTUALIZACIÓN abril 2018,

RStudio también ha publicado un paquete: https://blog.rstudio.com/2018/03/26/reticulate-r-interface-to-python/

para lo cual es posible ejecutar múltiples fragmentos de código en diferentes idiomas usando el bloc de notas R markdown, que es similar a un bloc de notas jupyter.

En mi publicación anterior, dije que la representación subyacente de los objetos es diferente. En realidad, aquí hay una discusión más matizada de la representación de matriz subyacente de R y python del mismo paquete: https://rstudio.github.io/reticulate/articles/arrays.html

Antigua publicación:

Será difícil para usted usar la sintaxis de R y Python en el mismo cuaderno, principalmente porque la representación subyacente de los objetos en los dos idiomas es diferente. Dicho esto, hay un proyecto que intenta permitir la conversión de objetos y diferentes idiomas en el mismo cuaderno: http://beakernotebook.com/features

No lo he usado pero parece prometedor


El kernel SoS es otra opción.

Aún no sé qué tan bien funciona, solo empecé a usarlo.

El kernel SoS le permite ejecutar diferentes idiomas dentro del mismo cuaderno, incluidos Python y R.

SoS Polyglot Notebook - Instrucciones para instalar los idiomas deseados

Aquí hay un ejemplo de un cuaderno con Python y R células .

*Actualizar:

En términos de compartir variables, se puede usar el magics %use y %with . "SoS comparte automáticamente variables con nombres que comienzan con sos entre todos los subkernels" 1 .

Ex.

Celda inicial en R:

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

Salida:

51 13

Cambiando a python:

%with Python3 sos_var.shape

Salida:

(51, 13)


No recomendaría usar dos idiomas en un solo cuaderno. En su lugar, puede organizar el código R y Python en el nivel del proyecto conectándolos en la base de entrada / salida del archivo. Las herramientas de ciencia de datos como DVC pueden ayudarlo a lograrlo.

Puede encontrar algunos ejemplos de código en esta publicación del blog: Mejores prácticas para orquestar código Python y R en proyectos ML


Usando la respuesta de @uut para ejecutar R en un cuaderno jupyter dentro del kernel de Python (en MacOS), lo siguiente me funcionó.

%%R siempre debe estar al comienzo de la celda, de lo contrario, aparecerá el error como se muestra en la figura a continuación.

El siguiente es el camino correcto:

Además, %load_ext rpy2.ipython debe aparecer antes de %%R por lo tanto, %load_ext rpy2.ipython en una celda diferente sobre ella como se muestra en las figuras.