Comunicar

Proceso del Tidyverse

Proceso del Tidyverse

Aquí aprenderemos sobre el paquete rmarkdown, el cual es una herramienta para integrar texto, código y resultados. Puedes usarlo en modo notebook, es decir, en un entorno interactivo de ejecución de código para la comunicación de analista-a-analista, y en modo reporte para la comunicación de analista-a-tomadores-de-decisión.

Gracias al potencial de los formatos de R Markdown, incluso puedes usar el mismo documento para ambos propósitos.

Con Rmarkdown se pueden obtener una gran variedad de salidas que puedes generar usando la librería R Markdown, incluyendo dashboards (tableros de control), sitios web, y libros.

Paquete rmarkdown

El paquete rmarkdown provee un marco de escritura para ciencia de datos, que combina tu código, sus resultados y tus comentarios en prosa. Los documentos de R Markdown son completamente reproducibles y soportan docenas de formatos de salida tales como PDFs, archivos de Word, presentaciones y más.

Puedes encontrar más información del paquete rmarkdown en los Cheat Sheets https://www.rstudio.com/resources/cheatsheets/

Elementos básicos de R Markdown

Para crear un archivo Rmarkdown debes ir a File -> New File -> Rmarkdown..., aquí te aparecerá una ventana donde deberás indicar el nombre del archivo que deseas crear y por el momento elegiremos html, y creamos con OK.

Comparación de las coordenadas en un gráfico (Coordenates Layer)

Comparación de las coordenadas en un gráfico (Coordenates Layer)

Contiene tres tipos importantes de contenido:

  1. Un encabezado YAML (opcional) rodeado de —

  2. Bloques de código de R rodeados de ```.

  3. Texto mezclado con formateos de texto simple como # Encabezado e itálicas.

Encabezado YAML

Formato general: encabezado YAML

YAML es la sigla en inglés de la frase “yet another markup language”, que significa “otro lenguaje de marcado más”. Este lenguaje de marcado está diseñado para representar datos jerárquicos de modo tal que sea fácil de escribir y leer para humanos. R Markdown lo utiliza para controlar muchos detalles del output.

Este encabezado determina los parámetros generales de formato para el reporte a compilar. En lenguaje computacional se entiende como los metadatos del documento; esto es, información que define el formato del archivo resultante, más no su contenido:

  • Título (title). Texto entre comillas que servirá de título general del documento.

  • Subtítulo (subtitle). Texto entre comillas que servirá de subtítulo para el título general del documento.

  • Autor (author). Texto entre comillas para indicar el nombre del o los autores.

  • Resumen (Abstract). Texto entre comillas para indicar el resumen del documento.

  • Fecha (date). Campo para indicar la fecha. En el texto, con la expresión today, se solicita que imprima la fecha actual según el calendario del sistema operativo.

  • Formato de bibliografía (csl). Nombre de un archivo de extensión .csl para indicar el formato de referencias en el cuerpo del texto y el listado de bibliografía al final del documento. La sigla refiere a Estilo del Lenguaje de Referencias (Citation Language Style) y permite definir si se usarán citas al estilo APA, ASA, Chicago, etc. Se adecúa a los diferentes requerimientos de referencias bibliográficas.

  • Los argumentos dentro del apartado resultado (output) son los siguientes:

    • pdf_document: indica el formato preestablecido para compilar el documento. En este caso, se trata de un PDF. Puede ser html_document o word_document.

    • fig_caption: indica si las figuras deben incorporar leyendas. Es true por default.

    • number_sections: si está definido como yes define que se numerarán los títulos y sutítulos a lo largo del documento, de manera automática y correlativa.

    • toc: es la abreviación de table of contents.

Opciones LaTeX

Muchos aspectos de la plantilla LaTeX utilizada para crear documentos PDF se pueden personalizar utilizando metadatos YAML de nivel superior (tenga en cuenta que estas opciones no aparecen debajo de la sección de salida, sino que aparecen en el nivel superior junto con el título, el autor, etc.) . Por ejemplo:

  • fontsize: Tamaña de la fuente (10pt, 11pt, or 12pt).

  • documentclass: Clases de documentos de LaTeX (article, book, etc.)

  • linkcolor, urlcolor, citecolor: Colores para links externos, internos y citas.

Puedes ver todas las opciones para personalizar la salida LaTex (pdf) en https://www.rstudio.com/wp-content/uploads/2015/03/rmarkdown-reference.pdf.

Formateo de texto

Existe una hoja de referencia útil que la obtienes en Help > Markdown Quick Reference.

Citas

Podemos utilizar dos formatos. El primero es sencillo, como sigue a continuación:

“Comprender las cosas que nos rodean es la mejor preparación para comprender las cosas que hay mas allá.”

— Hipatia

El segundo requiere que instales el paquete tufte.

“Comprender las cosas que nos rodean es la mejor preparación para comprender las cosas que hay mas allá.”
— Hipatia

Expresiones Matemáticas

Ejemplo 1: Utilice la integración por partes para evaluar la siguiente integral \(\displaystyle\int x e^x dx\).

Ejemplo 2: Utilice la integración por partes para evaluar la siguiente integral: \[\displaystyle\int x e^x dx\]

Puedes encontrar más fórmulas en el siguiente link.

Incluir bibliografía

Para aprender más acerca de R, te recomiendo el libro “R para Ciencia de Datos” de Wickham & Grolemund (2017). Lo puedes encontrar de forma gratuita en la web en el link R para Ciencia de Datos.

Para que la bibliografía conecte, deberás hacer lo siguiente:

  • Crear un archivo tipo BibTeX Database (.bib) donde especificarás los datos del artículo o libro:
@Book{hadley2021,
  Title                    = {R for Data Science (2e)},
  Author                   = {Hadley Wickham and Garrett Grolemund},
  Publisher                = {O'Reilly},
  Year                     = {2017}
}
  • En el YAML del documento debes agregar las opciones bibliography: biblio.bib donde debes especificar el nombre del archivo .bib que debe estar en el mismo directorio que estás trabajando y csl: apa.csl donde especificas el formato de la bibliografía, en este caso he utilizado el formato apa, puedes encontrar más estilos de bibliografía en https://github.com/citation-style-language/styles.

Bloques de código de R o chunks

Hay tres maneras para hacerlo:

  1. Con el atajo de teclado: Cmd/Ctrl + Alt + I

  2. Con el ícono “Insert” en la barra de edición

  3. Tipeando manualmente los delimitadores de bloque {r} y.

El paquete knitr provee casi 60 opciones que puedes usar para personalizar tus bloques de código. Puedes ver la lista completa en Opciones de bloques.

No muestra el código pero lo ejecuta y no muestra resultados se debe agregar include = FALSE. Puede servir para cargar los paquetes o la data.

Muestra el código pero no lo ejecuta, se agrega eval = FALSE.

# Media de largo y ancho de pétalos y sépalos de las flores por especie
flores %>% 
    group_by(Especie) %>% 
    drop_na() %>% 
    summarise(
        Largo_sep_media = mean(Largo.Sepalo),
        Ancho_sep_media = mean(Ancho.Sepalo),
        Largo_pet_media = mean(Largo.Petalo),
        Ancho_pet_media = mean(Ancho.Petalo))

No se muestra el código pero se visualizan los resultados con echo = FALSE.

## # A tibble: 3 × 5
##   Especie    Largo_sep_media Ancho_sep_media Largo_pet_media Ancho_pet_media
##   <fct>                <dbl>           <dbl>           <dbl>           <dbl>
## 1 setosa                5.01            3.43            1.46           0.246
## 2 versicolor            5.94            2.77            4.26           1.33 
## 3 virginica             6.59            2.97            5.55           2.03

Continúa renderizando aunque el código muestre un error. Muestra las advertencias del código con message=TRUE, warning=TRUE.

# Media de largo y ancho de pétalos y sépalos de las flores por especie
flores %>% 
    group_by(Especie) %>% 
    drop_na() %>% 
    summarise(
        Largo_sep_media = mean(Largo.Sepalo),
        Ancho_sep_media = mean(Ancho.Sepalo),
        Largo_pet_media = mean(Largo.Petalo),
        Ancho_pet_media = mean(Ancho.Petalo))
## # A tibble: 3 × 5
##   Especie    Largo_sep_media Ancho_sep_media Largo_pet_media Ancho_pet_media
##   <fct>                <dbl>           <dbl>           <dbl>           <dbl>
## 1 setosa                5.01            3.43            1.46           0.246
## 2 versicolor            5.94            2.77            4.26           1.33 
## 3 virginica             6.59            2.97            5.55           2.03

Muestra el código y lo ejecuta:

# Media de largo y ancho de pétalos y sépalos de las flores por especie
flores %>% 
    group_by(Especie) %>% 
    drop_na() %>% 
    summarise(
        Largo_sep_media = mean(Largo.Sepalo),
        Ancho_sep_media = mean(Ancho.Sepalo),
        Largo_pet_media = mean(Largo.Petalo),
        Ancho_pet_media = mean(Ancho.Petalo))
## # A tibble: 3 × 5
##   Especie    Largo_sep_media Ancho_sep_media Largo_pet_media Ancho_pet_media
##   <fct>                <dbl>           <dbl>           <dbl>           <dbl>
## 1 setosa                5.01            3.43            1.46           0.246
## 2 versicolor            5.94            2.77            4.26           1.33 
## 3 virginica             6.59            2.97            5.55           2.03

Tablas

Podemos incluir tablas de dos formas: creándolas o haciendo consultas de la data.

Para crear una tabla, podemos formarla como sigue:

Derecha Izquierda Default Centro
12 12 12 12
123 123 123 123
1 1 1 1

Podemos dar un mejor formato a nuestras tablas con knitr::kable e incluir una referencia a la tabla.

knitr::kable(
  flores %>% 
    group_by(Especie) %>% 
    drop_na() %>% 
    summarise(
        Largo_sep_media = mean(Largo.Sepalo),
        Ancho_sep_media = mean(Ancho.Sepalo),
        Largo_pet_media = mean(Largo.Petalo),
        Ancho_pet_media = mean(Ancho.Petalo)),
  caption = "Promedio de pétalos y sépalos por especie"
)
Promedio de pétalos y sépalos por especie
Especie Largo_sep_media Ancho_sep_media Largo_pet_media Ancho_pet_media
setosa 5.006 3.428 1.462 0.246
versicolor 5.936 2.770 4.260 1.326
virginica 6.588 2.974 5.552 2.026

Imágenes

Con código css:

Rmarkdown de Allison Horst

En un chunk con el paquete knitr:

Rmarkdown de Allison Horst

Rmarkdown de Allison Horst

Gráficos

También puede incrustar gráficos, por ejemplo:

Código dentro de una línea

Podemos incluir código dentro del texto, por ejemplo:

Nuestra data flores contiene la información de 150 flores. Los pétalos de las 3 especies de flores descritas tienen una dimensión promedio de sus pétalos de 1.2 cm de ancho y 3.76 cm de largo.

Tipos de reporte visual

Reporte Html

La salida para este reporte es output: html_document: default. Los documentos pueden ser publicados en RPubs, RStudio Connect, Sharepoint, en un sitio web personal o Google drive.

Debes crear una cuenta en RPubs https://rpubs.com/users/new.

Haremos una prueba en RPubs con el documento ‘prueba_html’.

Reporte Word

La salida para este reporte es output: word_document: default. Haremos una prueba en RPubs con el documento ‘prueba_html’.

Reporte Pdf

La salida para este reporte es output: pdf_document: default. Haremos una prueba en RPubs con el documento ‘prueba_pdf’.

Reporte PowerPoint

La salida para este reporte es output: powerpoint_presentation. Haremos una prueba en RPubs con el documento ‘prueba_ppt’.

Conectar RStudio con GitHub

Git es un sistema de control de versiones que le permite realizar un seguimiento de quién realizó cambios y cuándo, y tiene opciones para actualizar fácilmente una versión compartida o pública de su código en github.com.

Previamente, debes hacer es lo siguiente:

Para conectar RStudio con Github, debemos hacer lo siguiente:

  • Ir a Tools y escoger la opción Global Options..., buscamos la pestaña Git/SVN y debemos asegurarnos de tener la dirección del ejecutable de Git:

  • En caso de no conocer la ubicación del ejecutable de Git, podemos averiguarlo desde la Terminal con $ which git.exe.

  • Puedo crear un nuevo proyecto o elegir uno existente, y luego automáticamente en el panel de environment aparecerá una pestaña que dice Git y un botón en la barra de herramientas que indica Git.

  • Ver más en https://swcarpentry.github.io/git-novice-es/14-supplemental-rstudio/index.html.

Bibliografía

Wickham, H., & Grolemund, G. (2017). R for data science (2e). O’Reilly.