Reproducibilidad

XII Congreso Colombiano de Botánica

Álex Espinosa Correa

Universidad de Antioquia

Bladimir Vera Marín

Universidad de Antioquia

Proposito

  • Mostrar la importancia de la reproducibilidad en la ciencia
  • Enseñar el flujo de trabajo orientados a proyectos

¿Estamos en crisis?

Respuesta de 1576 cientificos a ¿existe una crisis de reproducibilidad? Baker (2016)

Registros de WoS que en el título, resumen o palabras clave contienen: «crisis de reproducibilidad», «crisis científica», «ciencia en crisis», «crisis en la ciencia», «crisis de replicación», o «crisis de replicabilidad». Fanelli (2018)

246 biólogo obtiene 246 resultados diferentes. Oza (2023)

¿Alguien por favor quiere pensar en los biólogos?

¿Cuántos trabajos publicados en su campo son reproducibles? Baker (2016)

“Why? Why? Oh, that’s why”

¿Ha fracasado al reproducir un experimento? ¿Qué factores contribuyen a que una investigación sea irreproducible? Baker (2016)

«Alguien tiene que hacer algo, por favor»

¿Alguna vez has intentado publicar un intento de reproducción? ¿Ha establecido procedimientos de reproducibilidad? Baker (2016)

Necesitamos cambios

El cambio estructural suele evocarse en el plano institucional y expresarse mediante nuevas normas y reglas; el cambio procedimental se refiere a comportamientos y conjuntos de prácticas de uso común en el proceso de investigación; el cambio comunitario engloba la forma en que evoluciona el trabajo y la colaboración dentro de la comunidad científica. Korbmacher et al. (2023)

Ciencia abierta

«Constructo inclusivo que combina diversos movimientos y prácticas con el fin de que los conocimientos científicos multilingües estén abiertamente disponibles y sean accesibles para todos, así como reutilizables por todos, se incrementen las colaboraciones científicas y el intercambio de información en beneficio de la ciencia y la sociedad, y se abran los procesos de creación, evaluación y comunicación de los conocimientos científicos a los agentes sociales más allá de la comunidad científica tradicional. La ciencia abierta comprende todas las disciplinas científicas y todos los aspectos de las prácticas académicas, incluidas las ciencias básicas y aplicadas, las ciencias naturales y sociales y las humanidades, y se basa en los siguientes pilares clave: conocimiento científico abierto, infraestructuras de la ciencia abierta, comunicación científica, participación abierta de los agentes sociales y diálogo abierto con otros sistemas de conocimiento.» UNESCO (2021)

Algunos beneficios de la ciencia abierta. UNESCO (2021)

Valores fundamentales y principios rectores

Valores fundamentales y principios rectores de la ciencia abierta. UNESCO (2021)

Taxonomía de la ciencia abierta

Investigación abierta reproducible

Reproducibilidad significa que los datos y el código de investigación están disponibles para que otros sean capaces de obtener los mismos resultados alcanzados en sus trabajos. Este concepto está íntimamente relacionado con el de replicabilidad, el acto de repetir una metodología científica con el objetivo de alcanzar conclusiones similares. Estos conceptos son elementos centrales de la investigación empírica.

Mejorar la reproducibilidad conduce a aumentar el rigor y la calidad de los trabajos científicos y, por tanto, a una mayor confianza en la ciencia. Bezjak et al. (2018)

La reproducibilidad se aplica directamente al método científico. Bezjak et al. (2018)

Repetibilidad, Replicabilidad, Reproducibilidad, y otras erres

Comparación de términos. Traducido de Plesser (2018).
Goodman et al. (2016) Claerbout & Karrenbach (1992) Association for Computing Machinery (2020)
Repetibilidad
Reproducibilidad de los métodos Reproducibilidad Replicabilidad
Reproducibilidad de los resultados Replicabilidad Reproducibilidad
Reproducibilidad inferencial

Explicación de la terminología sobre reproducibilidad y replicabilidad. Whitaker (2017).

El espectro de la reproducibilidad

Espectro de reproducibilidad más común. Peng (2011).

Compartir datos y código se considera suficiente para que muchos reproduzcan el análisis de datos. Sin embargo, esto no es suficiente. Akalin (2021).

Cómo fomentar la investigación abierta reproducible

Estrategias para hacer de la investigación reproducible y la formación en ciencia abierta la norma en las instituciones de investigación. Kohrs et al. (2023)

Actividad

  • Abrir script_super-analisis.r que se encuentra en la carpeta reproducibilidad
  • Ejecutar el script



05:00

Niveles de reproducibilidad en R

Niveles de reproducibilidad. Higgins (2024)

Advertencia

Si la primera línea de tu script R es

setwd("C:\Users\jenny\ruta\que\solo\yo\tengo")

Iré a tu oficina y LE PRENDERÉ FUEGO A TU ORDENADOR 🔥

Jenny Bryan

Dos problemas

setwd()

setwd() establece el directorio de trabajo.

setwd("/Users/alex/github/r/etnobotanica-workshop")

La probabilidad de que setwd() tenga el efecto deseado (hacer que las rutas de los archivos funcionen) para alguien que no sea su autor es del 0%. También es poco probable que funcione para el autor dentro de uno o dos años u ordenadores.

Las rutas fijas y absolutas, especialmente cuando están esparcidas por todo el código, hacen que un proyecto sea frágil. Este tipo de código no viaja bien a través del tiempo o del espacio.

rm(list = ls())

rm(list = ls()) elimina «todos» los objetos del entorno de trabajo actual.

Pensada para reiniciar las cosas, ya sea para reiniciar el análisis actual o para cambiar de un proyecto a otro. Pero hay mejores maneras de hacer ambas cosas: reiniciar R y Usar un IDE con soporte adecuado para proyectos.

Dada la intención, no va lo suficientemente lejos. Todo lo que hace es borrar objetos creados por el usuario del espacio de trabajo. Muchos otros cambios persisten de forma invisible y pueden tener profundos efectos posteriormente.

Entorno de desarrollo integrado (IDE)

Aplicación que proporciona servicios integrales para facilitar el desarrollo de software.

Ventajas:

  • Resaltado de sintaxis
  • Autocompletado de texto
  • Manejo de librerías
  • Construir, compilar o ejecutar
  • y mucho más…

IDEs populares:

  • Emacs
  • RStudio
  • vim
  • VS Code

Siempre empezar R desde cero

Siempre es recomendable trabajar en un espacio de trabajo desde cero, sin guardar o cargar cada vez. En RStudio se puede puede hacer de esta forma.

Siempre es recomendable reiniciar R de vez en cuando. En RStudio se puede hacer en Session > Restar R. Atajo de teclado: Ctrl-Shift-F10

Para desactivar .Rdata ir a Tools > Global Options.

Flujo de trabajo orienta a proyectos1

Enfoque de organización que estructura todo el trabajo, código, datos y resultados relacionados con un proyecto en una única carpeta o estructura de carpetas organizada. Esta metodología facilita el manejo y la reproducibilidad de proyectos, especialmente en ciencia de datos, programación y análisis.

Características

  • Estructura organizada de carpetas
  • Separación de código y datos
  • Control de versiones
  • Scripts y documentación reproducibles
  • Portabilidad

Ventajas

  • Reproducibilidad
  • Colaboración
  • Escalabilidad

Proyectos

Gestionar tus proyectos de forma reproducible no sólo hace que tu ciencia reproducible, sino que te facilita la vida. @vsbuffalo

  • Un proyecto es una carpeta que contiene todos los archivos relevantes para un trabajo en particular.

  • Los proyectos permiten que las investigaciones sean reproducibles, portátiles y autocontenibles.

  • Trabajar con proyectos implica tener:

    • Disciplina en el sistema de archivos: todos los archivos relacionados a un proyecto (datos, imágenes, resultados, scripts, etc) están en la carpeta del proyecto.
    • Intencionalidad en el directorio de trabajo: siempre se trabaja en el directorio del proyecto.
    • Disciplina en las rutas de archivos: todas las rutas son relativas (nunca absolutas) y relativas a la carpeta del proyecto.

Proyectos de RStudio

Los proyectos de RStudio facilitan la división del trabajo en varios contextos, con su propio directorio y espacio de trabajo, historial y documentos.

Hay varias formas de crear un proyecto. La más sencilla es File > New Project. Imagen: Wickham et al. (2023)

La barra de herramientas de proyectos se encuentra en la esquina superior derecha de RStudio. Muestra el nombre del proyecto actual, y tiene comandos para:

Opciones de la barra de herramientas de proyectos de RStudio.

Actividad

  • Crear dentro de Documentos un nuevo proyecto de RStudio



05:00

Rutas

Rutas absolutas

Indican la ubicación de un archivo o directorio desde el directorio raíz del sistema de archivos. Dificulta la reproducibilidad ya que esa ruta sólo «funciona» en el equipo donde se haya creado.

/usuarios/yo/documentos/r/proyecto/scripts/super-analisis.R


Rutas relativas

Indican la ubicación de un archivo o directorio a partir de la posición actual del sistema operativo en el sistema de archivos.

scripts/super-analisis.R

Here: encuentra tu camino. Ilustración de Allison Horst.

You are here::here()

El objetivo del paquete here es facilitar la referenciación de archivos en flujos de trabajo orientados a proyectos1. here utiliza el directorio de nivel superior de un proyecto para construir fácilmente rutas a archivos.


Ruta absoluta:

readr::read_csv("/Users/alex/documento/r/etnobotanica-workshop/data/raw_data.csv")


Ruta relativa

readr::read_csv("data/raw_data.csv")


Ruta relativa usando here

readr::read_csv(here::here("data", "raw_data.csv")) # opción 1
readr::read_csv(here::here("data/raw_data.csv")) # opción 2

Actividad

  • Copiar dentro del proyecto que creo todos los archivos de la carpeta ejercicio, que se encuentra en la carpeta reproducibilidad
  • Abrir 01_script_rutas.R que se encuentra en la carpeta scripts
  • Realizar los ejercicio



15:00

El nombre de las cosas

No

myabstract.docx
Joe’s Filenames Use Spaces and Punctuation.xlsx
figure 1.png
fig 2.png
JW7d^(2sl@deletethisandyourcareerisoverWx2*.txt


2014-06-08_abstract-for-sla.docx
joes-filenames-are-getting-better.xlsx
fig01_scatterplot-talk-length-vs-interest.png
fig02_histogram-talk-attendance.png
1986-01-28_raw-data-from-challenger-o-rings.txt

Principios para los nombres (de los archivos)

  1. Legible por máquinas

    • Expresiónes regulares (regex) y globbing1 amigable
      • Evitar espacios, puntuación, caracteres acentuados y distinción entre mayúsculas y minúsculas
    • Fácil de computar
      • Uso deliberado de delimitadores: “_” para delimitar unidades de metadatos y “-” para delimitar palabras
  2. Legible por humanos

    • El nombre contiene información sobre el contenido

    • Relacionado al concepto de URL semántica2

  3. Funciona bien con el orden predeterminado (alfanúmerico)

    • Poner algo numérico primero

    • Utilice ceros a la izquierda de otros números

    • Utilice la norma ISO 8601 para fechas: YYYY-MM-DD

Ejemplos

Orden lógico

01_marshal-data.R
02_pre-dea-filtering.R
03_dea-with-Limma-voom.R
04_explore-dea-results.R
90_Limma-model-term-name-fiasco.R
helper01_load-counts.R
helper02_load-exp-des.R
helper03_load-focus-statinf.R
helper04_extract-and-tidy.R

Orden crónologico

2015-11-09_package-installation.R
2016-05-21_package-installation.R
2017-09-05_package-installation.R
2018-06-29_package-installation.R
2019-02-19_repair-default-library.R
2020-06-06_record-existing-pkgs.R
2021-06-15_git-config-analysis.R
2021-08-29-git-default-branch.R
2022-08-11_record-existing-pkgs.R


Ejemplo más complejo

2013-06-26_BRAFWTNEGASSAY_Plasmid-Cellline-100-1MutantFraction_HO1.csv
2013-06-26_BRAFWTNEGASSAY_Plasmid-Cellline-100-1MutantFraction_HO2.csv
2013-06-26_BRAFWTNEGASSAY_Plasmid-Cellline-100-1MutantFraction_plateflle.csv
2014-02-26_BRAFWTNEGASSAY_FFPEDNA-CRC-1-41_A01.csv
2014-02-26_BRAFWTNEGASSAY_FFPEDNA-CRC-1-41_A02.csv

Formatos de los nombres

  • flatcase
  • SCREAMINGCASE
  • camelCase
  • PascalCase
  • snake_case
  • SCREAMING_SNAKE_CASE
  • camel_Snake_Case
  • Pascal_Snake_Case
  • kebab-case
  • SCREAMING-KEBAB-CASE
  • camel-Kebad-Case
  • Pascal-Kebad-Case

R no acepta todos los formatos listados. Formatos sugeridos: camelCase, flatcase, PascalCase, period.case, snake_case.

«Lo lamento, pero hizo que el emperador perdiera el estilo»

Un buen estilo de codificación es como una correcta puntuación: se puede prescindir de él, perofacilitalalectura. Todas las guías de estilo se basan fundamentalmente en opiniones. Algunas decisiones realmente facilitan el uso del código, pero muchas decisiones son arbitrarias. Lo más importante de una guía de estilo es que proporciona coherencia, lo que facilita la escritura del código porque hay que tomar menos decisiones.

Guías de estilo

Dos paquetes de R soportan la Guía de estilo del Tidyverse: styler y lintr.

Styler añade un complemento de RStudio que facilita aplicar el estilo.

Actividad



15:00

Estructura de un proyecto

No hay una estructura estándar para organizar un proyecto. Lo principal es que sea «organizado» y entendible por uno mismo y por otros.

La estructura de las carpetas y los nombres de los archivos deben ser:

  • Autodocumentados:
    • Los datos en la carpeta datos
    • Los scripts en la carpeta scripts
  • Fáciles de codificar. Ejemplo:
    • medellin_temperatura-minima.csv
    • medellin_temperatura-maxina.csv
  • Todos los archivos necesarios para

Hay varios paquetes que facilitan algunas de estas tareas: usethis, rrtools.

Ejemplo de estructura de un proyecto

proyecto/
├── proyecto.Rproject  # proyecto de RStudio
├── README.md          # útil para describir el proyecto
├── code/
│   ├── functions
│   └── scripts
├── data/
│   ├── raw_data/      # los datos sin procesar
│   │   ├── muestreo.xlsx
│   ├── derived_data/  # los datos procesados
│       └── datos.csv
├── images/
├── output/
│   ├── report.pdf     # el archivo exportado
├── report/
│   ├── apa.csl        # el estilo de citas y referencias
│   ├── references.bib # la información de las referencias
│   └── report.qmd
├── tables/
└── templates/

Quarto

No se trata solo de obtener resultados reproducibles; los informes o manuscritos también deben serlo. Quarto es un sistema de publicación científica y técnica de código abierto. Puede entrelazar texto y código para producir resultados con un formato elegante en forma de documentos, páginas web, blogs, libros y mucho más. Los archivos de Quarto (.qmd) son archivos de texto plano conformado por:

Metadata (YAML)

format: html
engine: knitr
format: html
engine: jupyter

Código

```{r}
library(dplyr)
mtcars |> 
  group_by(cyl) |> 
  summarize(mean = mean(mpg))
```
```{python}
from siuba import *
(mtcars
  >> group_by(_.cyl)
  >> summarize(avg_mpg = _.mpg.mean()))
```

Texto

# Título 1
Esta es una frase con algo de **texto en negrita**, *texto en cursiva* y una 
![Descripción de la imagen](imagen.png){fig-alt=«Alt text para la imagen»}.

Rutas en Quarto

Al usar un documento de Quarto dentro de un proyecto, es importante ser consciente de la ubicación de los archivos utilizados; por eso, las rutas relativas son fundamentales. Por diseño, el directorio de trabajo para renderizar archivos de Quarto es el directorio del propio archivo, que no siempre es la raíz del proyecto (.Rproj).

Tenemos el siguiente proyecto. Queremos mostrar data.csv en index.qmd

proyecto/
├── proyecto.Rproject # proyecto de RStudio
├── code/
│   └── index.qmd     # arhcivo de Quarto
└── data/
    └── data.csv/     # los datos

Ruta relativa

read.csv(
  "../data.csv"
)

# los .. significa «una carpeta 
# arriba de donde yo esté»

Ruta relativa con here

read.csv(
  here::here(
    "data",
    "data.csv"
  )
)

Actividad

  • Abrir 02_quarto_directorio-trabajo.qmd que se encuentra en la carpeta scripts
  • Leer las instrucciones y realizar la actividad
  • Abrir 03_quarto_rutas.qmd que se encuentra en la carpeta scripts
  • Leer las instrucciones y realizar la actividad



15:00

Flujo de trabajo

Procesos y código

Procesos y objetos

Una API humana para el análisis

Siempre que se pueda, se ha de apostar por formatos abiertos: CSV, JPEG, HTML, ODS, ODT, PDF, PNG, SVG, TSV, TXT. Imagen Bryan et al. (2024).

Control de versiones

Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante. […] en realidad puedes hacer lo mismo con casi cualquier tipo de archivo que encuentres en una computadora. Chacon (2014)

Un método básico y rudimentario del control de versiones es tener copias de un mismo archivo.

2015-11-09_package-installation.R
2016-05-21_package-installation.R
2017-09-05_package-installation.R
2018-06-29_package-installation.R

Se comienza con una versión básica y se van guardando sólo los cambios. Gonzalez et al. (2019).

Una revisión «normal» de un documento. PHD Comics.

Git y GitHub

Git es un sistema de control de versiones. Git gestiona la evolución de un conjunto de archivos -llamado repositorio- de una forma sana y muy estructurada. En un flujo de trabajo basado en Git, documentas y, opcionalmente, expones tu trabajo a medida que avanzas. La comunicación y la colaboración son las aplicaciones estrella del control de versiones. Bryan (2018).

Logo de Git.

GitHub es el mayor proveedor de alojamiento de repositorios Git, y es el punto de encuentro para que millones de desarrolladores colaboren en el desarrollo de sus proyectos. Un gran porcentaje de los repositorios Git se almacenan en GitHub, y muchos proyectos de código abierto lo utilizan para hospedar su Git, realizar su seguimiento de fallos, hacer revisiones de código y otras cosas. Chacon (2014).

El invertocat logo de Github. La silueta es The Octocat, la mascota de GitHub.

Entornos reproducibles

Un entorno (environment) consiste en todas las dependencias necesarias para que el código se ejecute correctamente. Esto incluye el propio R, los paquetes de R y las dependencias del sistema. Puede ser difícil gestionar entornos reproducibles:

  • El código que solía ejecutarse ya no se ejecuta, a pesar de que el código no ha cambiado.
  • Tener miedo de actualizar o instalar un nuevo paquete, ya que podría romper su código o el de otra persona.
  • Escribir install.packages() en tu entorno no hace nada, o no hace lo correcto.

package managers
package managers












language manager
language manager...







language
version
language...


environment
manager
environment...
your
project
your...
Text is not SVG - cannot display

«El proyecto cebolla»: apostar por el flujo de trabajo orientado a proyectos significa adoptar herramientas que permitan gestionar mediante programación cada una de las capas de la configuración del proyecto. Bryan et al. (2024)

Estos retos pueden abordarse mediante una cuidadosa combinación de herramientas y estrategias. Acá sólo abordamos: la actualización segura de paquetes y la colaboración en equipo. Quedando por fuera el manejo de varias versiones de R y las dependencias del sistema, para lo cual es recomendable investigar sobre rig y Docker.

renv

renv ayuda a crear entornos reproducibles para sus proyectos de R, haciendo los proyectos:

  • Aislados: la instalación de un paquete nuevo o actualizado para un proyecto no romperá sus otros proyectos, y viceversa. renv proporciona a cada proyecto su propia biblioteca privada.
  • Portátil: transporte fácilmente sus proyectos de un ordenador a otro, incluso a través de diferentes plataformas. renv facilita la instalación de los paquetes de los que depende su proyecto.
  • Reproducible: renv registra las versiones exactas de los paquetes de los que depende, y asegura que esas versiones exactas son las que se instalan allá donde vaya.

Los verbos y sustantivos más importantes de renv.

Pausa



15:00

Referencias

Akalin, A. (2021). Scientific data analysis pipelines and reproducibility. https://towardsdatascience.com/scientific-data-analysis-pipelines-and-reproducibility-75ff9df5b4c5
Association for Computing Machinery. (2020). Artifact review and badging - current. https://www.acm.org/publications/policies/artifact-review-and-badging-current
Baker, M. (2016). 1,500 scientists lift the lid on reproducibility. Nature, 533(7604), 452-454. https://doi.org/10.1038/533452a
Bezjak, S., Clyburne-Sherin, A., Conzett, P., Fernandes, P., Görögh, E., Helbig, K., Kramer, B., Labastida, I., Niemeyer, K., Psomopoulos, F., Ross-Hellauer, T., Schneider, R., Tennant, J., Verbakel, E., Brinken, H., & Heller, L. (2018). Open science training handbook. Zenodo. https://doi.org/10.5281/ZENODO.1212496
Bryan, J. (2015). How to name files. https://speakerdeck.com/jennybc/how-to-name-files
Bryan, J. (2017). Project-oriented workflow. https://www.tidyverse.org/blog/2017/12/workflow-vs-script/
Bryan, J. (2018). Excuse me, do you have a moment to talk about version control? The American Statistician, 72(1), 20-27. https://doi.org/10.1080/00031305.2017.1399928
Bryan, J., Hester, J., Pileggi, S., & Aja, E. D. (2024). What they forgot to teach you about R: the stuff you need to know about R, besides data analysis. https://rstats.wtf/
Campitelli, E., & Corrales, P. (2024). An R reproducibility toolkit for the practical researcher. https://reproducibility.rocks/
Chacon, S. (2014). Pro Git (2.ª ed.). Apress. https://git-scm.com/book/en/v2
Claerbout, J. F., & Karrenbach, M. (1992). Electronic documents give reproducible research a new meaning. SEG Technical Program Expanded Abstracts 1992, 601-604. https://doi.org/10.1190/1.1822162
Da Silveira, L., Calixto Ribeiro, N., Melero, R., Mora-Campos, A., Piraquive-Piraquive, D. F., Uribe Tirado, A., Machado Borges Sena, P., Polanco Cortés, J., Santillán-Aldana, J., Couto Corrêa Da Silva, F., Ferreira Araújo, R., Enciso Betancourt, A. M., & Fachin, J. (2023). Taxonomía de la ciencia abierta: revisada y ampliada. Encontros Bibli: revista eletrônica de biblioteconomia e ciência da informação, 28, 1-24. https://doi.org/10.5007/1518-2924.2023.e91712/53422
Fanelli, D. (2018). Is science really facing a reproducibility crisis, and do we need it to? Proceedings of the National Academy of Sciences, 115(11), 2628-2631. https://doi.org/10.1073/pnas.1708272114
Gonzalez, I., Huang, D., Hejazi, N., Koziar, K., & Munk, M. (2019). Version Control with Git: Summary and Setup. https://swcarpentry.github.io/git-novice/index.html
Goodman, S. N., Fanelli, D., & Ioannidis, J. P. A. (2016). What does research reproducibility mean? Science Translational Medicine, 8(341). https://doi.org/10.1126/scitranslmed.aaf5027
Higgins, P. D. R. (2024). Reproducible medical research with r. https://bookdown.org/pdr_higgins/rmrwr/
Kohrs, F. E., Auer, S., Bannach-Brown, A., Fiedler, S., Haven, T. L., Heise, V., Holman, C., Azevedo, F., Bernard, R., Bleier, A., Bössel, N., Cahill, B. P., Castro, L. J., Ehrenhofer, A., Eichel, K., Frank, M., Frick, C., Friese, M., Gärtner, A., … Weissgerber, T. L. (2023). Eleven strategies for making reproducible research and open science training the norm at research institutions. eLife, 12, e89736. https://doi.org/10.7554/eLife.89736
Korbmacher, M., Azevedo, F., Pennington, C. R., Hartmann, H., Pownall, M., Schmidt, K., Elsherif, M., Breznau, N., Robertson, O., Kalandadze, T., Yu, S., Baker, B. J., O’Mahony, A., Olsnes, J. Ø.-S., Shaw, J. J., Gjoneska, B., Yamada, Y., Röer, J. P., Murphy, J., … Evans, T. (2023). The replication crisis has led to positive structural, procedural, and community changes. Communications Psychology, 1(1), 3. https://doi.org/10.1038/s44271-023-00003-2
Lopp, S. (2019). Reproducible Environments. https://rviews.rstudio.com/2019/04/22/reproducible-environments/
Oza, A. (2023). Reproducibility trial: 246 biologists get different results from same data sets. Nature, 622(7984), 677-678. https://doi.org/10.1038/d41586-023-03177-1
Peng, R. D. (2011). Reproducible Research in Computational Science. Science, 334(6060), 1226-1227. https://doi.org/10.1126/science.1213847
Plesser, H. E. (2018). Reproducibility vs. replicability: a brief history of a confused terminology. Frontiers in Neuroinformatics, 11, 76. https://doi.org/10.3389/fninf.2017.00076
Posit Software. (2022). RStudio User Guide - renv. https://docs.posit.co/ide/user/ide/guide/environments/r/renv.html
Posit Software. (2024). Reproducible Environments. https://solutions.posit.co/envs-pkgs/environments/
Slingsby, J. (2024). A minimal introduction to reproducible research. https://www.ecologi.st/data-management/
UNESCO. (2021). Recomendación de la UNESCO sobre la Ciencia Abierta. https://doi.org/10.54677/YDOG4702
Whitaker, K. (2017). Showing your working: a how to guide to reproducible research. https://doi.org/10.6084/m9.figshare.4244996.v2
Wickham, H., Çetinkaya-Rundel, M., & Grolemund, G. (2023). R for data science: import, tidy, transform, visualize, and model data (2.ª ed.). O’Reilly. https://r4ds.hadley.nz