2.2 Investigación reproducible: R Markdown!.

Anteriormente hablamos sobre los aspectos del flujo de trabajo durante la creación de scripts. R es un lenguaje que facilita mucho la documentación: durante la realización de los programas se pueden dejar comentarios que van explicando paso a paso los acciones realizadas durante el análisis. Esta forma de documentar no solo se refiere a generar código para llevar a cabo un análisis, sino también el registro del porque de las acciones tomadas (p. ej. porque se escogió un modelo estadístico por sobre otro), registro de errores realizados para referencias futuras, notas personales, y otras piezas de información que sirvan a cualquiera que lea tú código para reproducir tus mismos resultados a partir de los datos obtenidos [@Foster].

Ciertamente, el proceso de investigación involucra diferentes partes. Sin embargo, la investigación reproducible hace referencia a la parte de la investigación que comienza cuando ya se tienen los datos crudos (o raw data. Estos son datos no depurados, es decir, que no se han procesado de ninguna manera), y que continua con el análisis, culminando en la generación de resultados. Otras personas deben ser capaces de utilizar tu código y los datos crudos y generar tus mismos resultados. Esta requiere del establecimiento de flujos de trabajo que sean comunes entre los investigadores y analistas, e implica la adopción de un sistema de documentación que ayude a la transparencia y claridad de la investigación y del proceso de análisis.

En este sentido, los scripts no ofrecen un buen medio de comunicación, ni un buena infraestructura para la investigación reproducible. Simplemente, ¡hay cosas que no puedes colocar en un script! Por ejemplo, llamadas a instalar paquetes o direcciones de disco duro que solo funcionan en tu computadora. La información relacionada a el lugar donde se encuentran los datos, donde se generan las salidas (como imágenes y archivos PDF), los paquetes necesarios, entre otras cosas, deben de ser conocidas por el analista previo a la realización del análisis.

Con este fin, es que R Markdown aparece en escena. Es una forma de hacer seguimiento y llevar registro de todas las cosas que no es posible colocar en un script. Este último contiene el código de análisis, pero los aspectos del flujo de trabajo (direcciones, paquetes, el editor que usas, etc.) vienen especificados de acuerdo las practicas de programación y en documentos de texto estructurados. De esta forma se hace seguimiento, integrando el código con tu propia narrativa de acerca de lo que se esta haciendo (esto es lo que se llama programación literaria).

Los documentos de R Markdown se escriben en lenguaje de marcado llamado Markdown, el cual provee una forma de estructurar un documento de forma sencilla. Puede usarse para muchos fines (libros, reportes, paginas web, presentaciones, y mucho más). Para una guía completa de R Markdown, revisa el libro de @Yihui2018, el cual tiene todo lo que necesitas saber sobre R Markdown. También recomiendo el R Markdown Cookbook del mismo autor [@Yihui2020] que puede servir como una referencia rápida.