install.packages('chronicle')

Este paquete permite crear archivos R Markdown con widgets interactivos, sin necesidad que conocer el código para crear cada uno directamente. Está construido en un paradigma de capas, que le será familiar e intuitivo a cualquier usuario de {ggplot} o {tensorflow} en R.

¿Por qué un paradigma de capas?

  • Un paradigma de capas provee facilidad, potencia y flexibilidad al flujo de trabajo. Permite a principiantes aprender y dominar una funcionalidad a la vez, y a personas más experimentadas trabajar con construcciones robustas y complejas.

  • Y los reportes R markdown se prestan a este paradigma porque ya son modulares! chronicle nace de reconocer un archivo R Markdown como una sucesión de pequeños módulos de código y texto.

¿Cómo usar chronicle?

Crear archivos R Markdown a través de las funciones add_*

library(chronicle)

reporte_nuevo <-
  add_title(title = 'Así se ve un reporte de chronicle', title_level = 1) %>%
  add_density(dt = iris, groups = 'Species', value = 'Sepal.Length', faceted = F) %>%
  add_boxplot(dt = iris, groups = 'Species', value = 'Sepal.Length') %>%
  add_barplot(dt = iris, bars = 'Species', value = 'Sepal.Length') %>%
  add_table(table = head(iris),
          table_title = 'La famosa tabla iris, en una tabla de kable',
          html_table_type = 'kable') %>%
  add_table(table = ggplot2::mpg[],
            table_title = 'Y esta es mpg de ggplot2, en una tabla DataTable',
            html_table_type = 'DT')
cat(reporte_nuevo)
## 
## 
## # Así se ve un reporte de chronicle
## 
## ## Distribution of Sepal.Length by Species
## ```{r, echo =  FALSE, message =  FALSE, warning =  FALSE}
## make_density(dt = iris, value = 'Sepal.Length', groups = 'Species', faceted = 'FALSE', scales = 'fixed')
## ```
## 
## ## Distribution of Sepal.Length by Species
## ```{r, echo =  FALSE, message =  FALSE, warning =  FALSE}
## make_boxplot(dt = iris, value = 'Sepal.Length', groups = 'Species', jitter = 'TRUE')
## ```
## 
## ## Sepal.Length by Species
## ```{r, echo =  FALSE, message =  FALSE, warning =  FALSE}
## make_barplot(dt = iris, bars = 'Species', value = 'Sepal.Length', horizontal = 'FALSE', sort_by_value = 'FALSE', sort_decreasing = 'TRUE', ggtheme = 'minimal')
## ```
## 
## ## La famosa tabla iris, en una tabla de kable
## 
## ```{r, echo = FALSE, message = FALSE, warning = FALSE}
## knitr::kable(head(iris))
## ```
## 
## ## Y esta es mpg de ggplot2, en una tabla DataTable
## 
## ```{r, echo = FALSE, message = FALSE, warning = FALSE}
## DT::datatable(ggplot2::mpg[])
## ```

Las llamadas de las funciones make_*

Cada gráfico que se agregue con una función add_, lo hará a través de una llamada a una función make_. Estas son las que realmente crean los gráficos con todas sus especificaciones.

make_barplot(dt = ggplot2::mpg,
             value = 'cty',
             bars = 'manufacturer',
             break_bars_by = 'model',
             horizontal = TRUE,
             sort_by_value = TRUE)
make_density(dt = iris,
             value = 'Sepal.Length',
             groups = 'Species',
             faceted = FALSE)

Estas funciones se pueden llamar independientemente y agregar a reportes ya existentes, o a cualquier otro lugar donde se pueda montar un gráfico html.

Compilación del R Markdown

La función render_report() se encarga de construir el encabezado yaml del R Markdown. Puede construir varios encabezados para varios formatos de salida en una sola llamada. Así, por ejemplo, se puede preparar una presentación con diapositivas html, para luego distribuirlo a la audiencia como un reporte o cuaderno interactivo.

Otra fortaleza de render_report() es que hace la compilación directamente desde el ambiente global. Es decir, tiene visibilidad de todos los objetos que se hayan cargado en memoria hasta momento de llamar la función. Así, no hay necesidad de repetir la carga y procesamiento de datos para cada vez que se quiere generar el archivo, y se pueden generar distintos reportes para distintas audiencias con la misma corrida de preparación de datos.

render_report(report = reporte_nuevo,
              filename = 'chronicle-conectaR2021',
              title = 'Demo de chronicle en ConectaR 2021',
              author = '(Aquí va la autora/el autor)',
              output_format = c('prettydoc', 'ioslides'),
              keep_rmd = TRUE,
              render_html = TRUE,
              table_of_content = FALSE,
              number_sections = FALSE,
              highlight = 'vignette')

Reportería HTML ¡sin fricción!

Anexo

Listado de funcionalidades R Markdown que soporta de chronicle en su versión 0.2.1

Elementos en R Markdown
  • Títulos (add_title)
  • Texto libre (add_text)
  • Un código libre (add_code(eval = TRUE))
  • Gráficos
    • Densidad (add_density)
    • Diagrama de caja (add_boxplot)
    • Diagrama de dispersión (add_scatterplot)
    • Gráfico de barras (add_barplot)
    • Histogramas (add_histogram)
    • Líneas (add_lineplot)
    • Series de tiempo con dygraphs (add_dygraph)
  • Tablas
    • kable (add_table(html_table_type = “kable”)
    • DataTables (add_table(html_table_type = “DT”))
Formatos de salida de R Markdown
  • prettydoc (recomendado)
  • ioslides
  • html_document
  • html_notebook
  • Experimental:
    • tufte
    • flexdashboard
    • slidy_presentation
¿Qué sigue para chronicle?
  • Pulir otros tipos de salida: bookdown, pagedown, flexdashboard, blogdown.
  • Agregar gráficos nuevos y parámetros adicionales para los existentes.
  • Otros motores de gráficos interactivos: ggiraph, e_charts, highcharter*, D3 (!).