1 Intro
Para ejecutar código R se necesita tener instalado R en tu ordenado: sí, se necesita un interprete de R. Pero resulta que, Webr es una versión de R que se ejecuta directamente en el navegador. ¿Y cómo puede R ejecutarse en el navegador? pues usando WebAssembly(wasm), un estándar abierto que ha revolucionado el desarrollo web al proporcionar un nuevo enfoque para ejecutar código en los navegadores. Si te interesa el tema, aquí puedes empezar. El caso es que ahora, con WebAssembly y Webr, podemos ejecutar R en el navegador.
La documentación oficial de Webr nos dice que:
WebR is a version of the statistical language R compiled for the browser and Node.js using WebAssembly, via Emscripten.
Así que con Webr tenemos la posibilidad de ejecutar R en el navegador. Genial!! Aquí tienes una demo del webR IDE donde puedes probarlo.
2 quarto-webr
Genial que ahora se pueda ejecutar R en el navegador, pero este curso va sobre Quarto, así que me voy a centrar en quarto-webr, una extensión de Quarto que facilita la inserción de chunks de código WebR en documentos generados con Quarto de Quarto1.
¿Y para que puede ser de utilidad quarto-webr
? Pues para hacer documentos interactivos, en el sentido de que se puedan ejecutar código R en ellos … sin tener instalado R en el ordenador!!
Aquí tienes la documentación de quarto-webr
, y aquí tienes un post llamado “Playing with webr” que si te fijas te permite descargarte el documento fuente
3 ¿Cómo usamos quarto-webr
?
Para empezar a usar Webr no hace falta más que este video. Básicamente hay que:
- añadir la extensión:
- Para usarla hay que añadir
webr
en el YAML, también hay que ponerengine: knitr
. Además se pueden añadir paquetes adicionales: El YAML podría quedar como:
---
title: webR in Quarto HTML Documents
format: html
engine: knitr
filters:
- webr
webr:
packages:
- "dplyr"
- "ggplot2"
---
This is a webr-enabled code cell in a Quarto HTML document.
```{webr-r}
fit = lm(mpg ~ am, data = mtcars)
summary(fit)
```
- Y ya podríamos introducir en nuestros
.qmd
, chunks de código R ejecutables. Para ello solo hay que marcar los chunks with{webr-r}
en lugar de con{r}
. Algo como:
Lo bueno de estos nuevos webr-chunks es que son editables y se pueden ejecutar en el navegador.
4 Un ejemplo
Un ejemplo de celda/chunk de Webr
Si escribes esto:
Generará la siguiente celda:
5 Más ejemplos
Aquí se usa
webr
. Una cosa que hace es instalar un paquete con el sistema propio de WebR con:webr::install("ggplot2")
; aunque esto puede estar superado pues se pueden cargar pkgs no R-base desde el YAML. Lo investigaré. Sí ahora se puede usar el YAML para “instalar” paquetes, pero supongo que también funcionará el método anteriorAquí otro tutorial. Habla de Bob Rudis
Aquí una web con varios ejemplos de uso de WebR. Aquí está el repo.
Un post de Bob Rudis que fue de los primeros en trabajar en WebR
Nicola Rennie explica en este toot que ha hecho un Shiny con WebR. La ventaja es que puedes hacer el deply sin teer R en el backend. Otro toot con una charla de Nicola.
Un video de 16 minutos y sus slides para posit::conference 2023
6 Algunas noticias sobre WebR
WebR es bastante nuevo, así que hasta que se “estabilice la cosa” y yo pilote un poco, apuntaré aquí algunas news sobre WebR:
la extensión quarto-webr ya está en la version 0.4
Parece que había problemas para usar Webr en revealjs slides. Con Quarto 1.4 ya está solucionado, parece que era un problema de Pandoc, pero aquí está la issue. La guardo porque tiene cosas como, por ejemplo, hacer un downgrade de una extensión.
Se ha creado una Awesome WebR list.