![]()
Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
Utilizaremos los datos de TidyTuesday acerca de lugares de votación en los Estados Unidos: días de elecciones, locaciones, direcciones, y otros puntos.
## Antes de iniciar
|>Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
“Reproducibilidad significa que los datos de investigación y el código están disponibles para que otros puedan alcanzar los mismos resultados que se afirman en los productos científicos. Estrechamente relacionado está el concepto de replicabilidad, el acto de repetir una metodología científica para llegar a conclusiones similares.”
Fuente: Foster Open Science. https://book.fosteropenscience.eu/en/

Fuente: The Turing Way project.
Datos: originales, y en versión adecuada para el tipo de análisis. Archivos de formato abierto, y con metadatos de calidad.
Código: scripts con el código para extraer, limpiar y analizar los datos, y además, producir el reporte y las figuras correspondientes.
Herramientas: lenguaje, paquetes, ambiente para reproducir el análisis.
Resultados: figuras, tablas, reportes, presentaciones, dashboards.

Fuente: The Turing Way project & Scriberia. http://doi.org/10.5281/zenodo.3332807

Fuente: Joint Roadmap for Open Science Tools https://jrost.org/2018/09/13/workshop.html
Hola Marcela,
Muchas gracias por el reporte, las 40 páginas de resultados están muy interesantes.
Hay un pequeño detalle: hablé con el asistente y me dijo que había un error en la lectura del espectrofotómetro. Los registros del 86900 al 95000 no deben tomarse en cuenta para el análisis. ¿Podés rehacer el reporte con esa corrección?
Hola Carlos,
¡Bienvenido a nuestra oficina!
Tu trabajo durante el primer semestre será hacer los reportes de consumo de electricidad de las áreas residenciales del cantón.
Los datos actualizados se pueden accesar en este servidor XX cada lunes, y necesitamos un reporte escrito para la jefa que sea consistente a través del tiempo.
Estimada autora,
Le adjuntamos las correcciones de su artículo.
Le rogamos conteste los comentarios de las personas revisoras en un documento a parte y entregue la versión corregida del artículo específicando exactamente qué cambió y dónde.
Como seres humanos, siempre podemos equivocarnos.
Muchas labores de la academia, industria, gobierno, son repetitivas, y pueden automatizarse. Eso si, siempre asegurando un control de calidad.
La transparencia y trazabilidad en nuestro trabajo puede ayudar a comunicarnos mejor con nuestros colaboradores, pero sobre todo con nosotros mismos en el futuro.
Seguimiento de un historial completo de su investigación
La investigación reproducible debe contener una historia completa y narrativa o procedencia del proceso de planificación y desarrollo del proyecto.
Al almacenar un historial completo de nuestro trabajo, podemos garantizar la sostenibilidad de la investigación, y la utilidad de nuestro trabajo y el de los demás en nuestros campos de investigación.
Fuente: https://the-turing-way.netlify.app/reproducible-research/overview/overview-benefit.html#rr-overview-benefits
Facilita el proceso de colaboración y revisión
Al diseñar flujos de trabajo reproducibles y compartirlos con los diferentes componentes de nuestro proyecto de investigación, podemos permitir que otros desarrollen una comprensión profunda de nuestro trabajo.
Esto los anima a revisar nuestros métodos, probar nuestro código, proponer cambios útiles y hacer contribuciones bien pensadas para seguir desarrollando nuestro proyecto.
Los flujos de trabajo reproducibles facilitan enormemente el proceso de revisión por pares al permitir que los revisores accedan a las diferentes partes de los proyectos que son necesarias para validar los resultados de la investigación.
Fuente: https://the-turing-way.netlify.app/reproducible-research/overview/overview-benefit.html#rr-overview-benefits
Publicación de investigaciones validadas que evitan la información errónea
La falta de reproducibilidad es uno de los principales factores que conducen a la retracción del papel (ver Retraction Watch).
Al trabajar de manera reproducible, podemos desarrollar un trabajo de investigación validado, evitar la información errónea que puede limitar la replicabilidad de nuestro trabajo y publicar resultados de investigación precisos. Este aspecto no solo respalda la validez del trabajo actual, sino cualquier estudio futuro que se base en investigaciones reproducibles.
Fuente: https://the-turing-way.netlify.app/reproducible-research/overview/overview-benefit.html#rr-overview-benefits
Escritura de trabajos, tesis e informes de manera eficiente
Los análisis bien documentados nos ayudan a mantener un fácil acceso a todos los resultados generados dentro de un proyecto que se pueden redactar de manera eficiente.
Si trabaja en equipo, los colaboradores pueden obtener fácilmente el reconocimiento en términos de autoría por sus contribuciones. Además, al hacer uso del conjunto de datos y los métodos subyacentes, podemos cumplir fácilmente con las pautas de revistas de más alto nivel.
Fuente: https://the-turing-way.netlify.app/reproducible-research/overview/overview-benefit.html#rr-overview-benefits
Obtención de crédito por su trabajo, de manera justa
Fuente: https://the-turing-way.netlify.app/reproducible-research/overview/overview-benefit.html#rr-overview-benefits
Asegure la continuidad de su trabajo
Al seguir las pautas de reproducibilidad, podemos comunicar fácilmente nuestro trabajo con diferentes partes interesadas, como nuestros supervisores, patrocinadores, revisores, estudiantes y posibles colaboradores.
Esto asegura la continuidad de una idea de investigación e incluso puede encontrar nuevas aplicaciones en otros contextos. El progreso de tales proyectos puede ser fácilmente monitoreado y continuado, ya sea por otros investigadores o por usted mismo, si desea desarrollar su propio trabajo después de un período más largo.
Fuente: https://the-turing-way.netlify.app/reproducible-research/overview/overview-benefit.html#rr-overview-benefits
Fuente: Initial Steps toward Reproducible Research. https://kbroman.org/steps2rr/
Siempre guarde los datos originales por separado y con permisos de solo lectura.
Evite usar paths absolutos en su código.
Use nombres de archivos que se expliquen por sí solos. No use “final” en sus archivos.
Siempre escriba un archivo Readme.
Guarde la semilla (seed) antes de usar cualquier procedimiento aleatorio.
Evite a toda costa editar “a mano” (o en cualquier software de point and click) los archivos de datos.
Fuente: Initial Steps toward Reproducible Research. https://kbroman.org/steps2rr/

Fuente: Scary Excel Stories. https://github.com/jennybc/scary-excel-stories
Puede usarlo en distintas plataformas (Git: Gitlab, Github, Bitbucket; Mercurial; etc.)
Puede facilitar la exploración del historial de cambios
Le permite volver a un estado anterior para encontrar la fuente de un error
Le permite probar cosas sin preocuparse por romper las cosas que funcionan
Puede facilitar la incorporación de cambios de los colaboradores, incluso si todos realizan cambios simultáneos en el mismo conjunto de archivos
Excelente herramienta de colaboración
Empiece por aquí: https://happygitwithr.com/
Fuente: Guía para la investigación Reproducible. The Turing Way. https://the-turing-way.netlify.app/reproducible-research/reproducible-research.html
Individualmente, piense en su último proyecto que involucró un análisis de datos. Pregúntese:
¿Puede volver a correr el mismo análisis en su computadora?
¿Es posible que otra persona reproduzca su análisis (desde la lectura de datos hasta la producción del reporte completo) en otra computadora distinta? ¿tiene instrucciones suficientes? ¿puede facilmente juntar todo lo que se necesita en un solo archivo?
¿Cuáles pasos puede adoptar para mejorar la reproducibilidad de sus análisis de datos desde ya?
Ahora comente con la persona a su lado acerca de su experiencia. En 5 minutos compartiremos las experiencias con todo el grupo.
Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
Quarto® es una herramienta
de código abierto
cientifica y técnica
también es un sistema de publicación
construido en Pandoc.
La pregunta que dió a su creación fue: ¿podemos reimplementar R Markdown de una manera que no sea únicamente con R?
Quarto puede crear varios tipos de documentos, incluyendo:
Ultimadamente, es su decisión!
Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
Ud puede usar Quarto en RStudio, VS Code, Jupyter, Neovim, y otros editores de texto.
Para este taller, vamos a usar RStudio, que viene con Quarto incluido en sus últimas versiones.
Podemos crear un nuevo documento de Quarto en File > New File > Quarto Document.
.qmd en el documento de Quarto.Así luce un documento de Quarto default
key: value{}#| al principio de la líneaUtilice el botón Render para obtener una vista previa de los documentos a medida que los edita.
Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
embed-resources: true es muy importante para crear archivos HTML independientesejecutar#|A continuación, podemos crear un borrador del informe agregando:

#| etiqueta: fig- a etiquetas para referencias cruzadas#| fig-cap: para agregar un título a una figura o tabla```{r}
#| label: "fig-statemap"
#| fig-cap: "Polling locations in the state"
#| results: hide
us_states <- states(cb = TRUE, resolution = "20m") |>
filter(NAME != "Puerto Rico")
ggplot(us_states |> filter(NAME == "Alabama")) +
geom_sf() +
geom_point(data = polling_places |> filter(state == "Alabama"),
aes(x = longitude,
y = latitude),
alpha = 0.4) +
theme_void()
```\@fig-label.`r`Manual:
* Total number of counties: **65**
* Total number of polling places: **2075**
* Election Day: **2020-11-03**Inline code:
* Total number of counties: **`{r} polling_places |> filter(state == "Alabama") |> distinct(county_name) |> count()`**
* Total number of polling places: **`{r} polling_places |> filter(state == "Alabama") |> count()`**
* Election Day: **`{r} polling_places |> filter(state == "Alabama") |> pull(election_date) |> unique()`**[^1] dentro del texto y [^1]: Aquí está la nota al pie. para escribir la nota al pie.In this report, we present a detailed overview of polling places in various counties across the United States, providing information on the total number of polling places and showcasing example locations for each county on election day.[^1]
[^1]: Data from https://github.com/rfordatascience/tidytuesdayAbra el documento 01-rough-draft.qmd
Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
knitr::knit_child()knitr::knit_child() le permite dividir su contenido en partes modulares más pequeñas```{r}
#| results: hide
counties <- polling_places |> filter(state == "Alabama") |> distinct(county_name) |> pull()
expanded_child <- counties |>
map(function(county) knitr::knit_expand("../_template.qmd", current_county = county)) |>
flatten()
parsed_child <- knitr::knit_child(text = unlist(expanded_child))
```
`{r} parsed_child`En otro archivo llamado _template.qmd:
```{r}
### {{current_county}} COUNTY
* Total Polling Places: `{r} polling_places |> filter(state == params$state, county_name == "{{current_county}}") |> count()`
* Example Locations:
```
```{r}
polling_places |>
filter(state == params$state,
county_name == "{{current_county}}") |>
head(6) |>
select(name, address.x) |>
kbl(format = "markdown")
```Abra el documento 02-iterate-report-knit-child.qmd
Fuente: Informes parametrizados con Quarto por Jadey Ryan
params en el par key:valueparams$state cada vez que quiera llamar el valorparams$state cada vez que quiera llamar el valor```{r}
ggplot(us_states |> filter(NAME == params$state)) +
geom_sf() +
geom_point(data = polling_places |> filter(state == params$state),
aes(x = longitude,
y = latitude),
alpha = 0.4) +
theme_void()
```Note
Esto incluye el código en línea y el archivo “child” _template.qmd
params en el YAML para obtener un reporte por estadoquarto render polling-places-report.qmd -P estado:'California'quarto::quarto_render()Abra el documento 03-iterate-report-parameters.qmd
Opción 1:
params para cada estado y renderice el documento.Un reporte HTML por estado.
quarto::quarto_render()output_format: tipo de archivo (html, revelajs, pdf, docx, etc.)output_file: nombre de archivo con extensiónexecute_params: lista de parámetros con nombrepurrr::pwalk(dataframe, quarto_render, quarto_render_args)```{r}
library(readr)
library(dplyr)
library(quarto)
polling_places <-
readr::read_csv(here::here("data", "geocoded_polling_places.csv"))
polling_places_reports <-
polling_places |>
dplyr::distinct(state) |>
dplyr::slice_head(n = 5) |>
dplyr::mutate(
output_format = "html",
output_file = paste0(
tolower(state),
"-polling-places.html"),
execute_params = purrr::map(
state,
\(state) list(state = state))) |>
dplyr::select(output_file, execute_params)
```03-iterate-report-parameters.qmd_parameters-render.RIntro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
theme en html04-united-theme.qmdsketchy quarto05-sketchy-theme.qmd.css or .scss (Syntactically Awesome Style Sheets) a su proyecto/*-- scss:defaults --*/
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz@9..144&family=Gilda+Display&display=swap');
$font-family-sans-serif: "Fraunces", sans-serif;
$presentation-heading-color: #446571;
$code-block-font-size: 0.6em;
$code-color: #5f5f5f;
$presentation-h2-font-size: 1.4em;
$link-color: #446571 !default;title-block-banner06-custom-theme.qmdIntro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
pdf al YAML para representar las versiones HTML y PDF del informe.07-multiple-formats.qmdIntro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
Genere su propio documento reproducible en Quarto usando copilot.
Intro
¿Qué es un análisis de datos reproducible?
¿Qué es Quarto?
Empecemos con Quarto
Crear un reporte en Quarto
Iterando sus reportes
Dele estilo a sus reportes
Usar otros formatos
Usar co-pilot en R
¡Muchas gracias!
Por favor no duden en contactarme si tienen alguna duda:
Análisis de Datos Reproducible con R y Quarto