class: front <!--- Para correr en ATOM - open terminal, abrir R (simplemente, R y enter) - rmarkdown::render('static/docpres/07_interacciones/7interacciones.Rmd', 'xaringan::moon_reader') About macros.js: permite escalar las imágenes como [scale 50%](path to image), hay si que grabar ese archivo js en el directorio. ---> .pull-left[ # Encuestas Sociales ## Juan Carlos Castillo ## Sociología FACSO - UChile ## 2do Sem 2022 ## [.green[encuestas-sociales.netlify.com]](https://encuestas-sociales.netlify.com) ] .pull-right[ .right[ <br> ## .yellow[Sesión 8: Flujo de trabajo y preparación de datos] ![:scale 70%](../../files/img/eval-hires.png) ] ] --- layout: true class: animated, fadeIn --- class: inverse .red[Segunda unidad del curso:] .pull-left-narrow[ # .yellow[Análisis de datos de encuestas] ] .pull-right[ <br> - Flujo de trabajo y preparación de datos - Generación de tablas - Generación de gráficos - Uso de ponderadores - Indices y factores - Reporte y comunicación ] --- class: inverse # .red[Contenidos] .pull-right-wide[ ## 1. Flujo de trabajo colaborativo y reproducible ## 2. Preparación de datos ] --- class: inverse # .red[Contenidos] .pull-right-wide[ ## 1. .orange[Flujo de trabajo colaborativo y reproducible] ## 2. Preparación de datos ] --- class: roja middle center # .yellow[¿Cómo organizar el flujo de trabajo?] ## A. Estilo personal (ad-hoc) ## B. Protocolo reproducible --- # ¿Cómo organizar el flujo de trabajo? ## .red[A. ad-hoc (menos reproducible)] - cada investigador define numero de archivos, nombres, carpetas y organización - explicar al resto cómo se organiza - documentar en un archivo cómo se organiza --> reproducibilidad y transparencia **LIMITADA** --- class: center ![:scale 70%](https://mfr.de-1.osf.io/export?url=https://osf.io/ftkq8/?direct%26mode=render%26action=download%26public_file=True&initialWidth=848&childId=mfrIframe&parentTitle=OSF+%7C+reproducibiity_relocates_time.png&parentUrl=https://osf.io/ftkq8/&format=2400x2400.jpeg) --- # ¿Cómo organizar el flujo de trabajo? ## .red[B. *Protocolo* de trabajo reproducible] - **estructura** de carpetas y archivos interconectados que refieren a reglas conocidas - **autocontenido**: toda la información necesaria para la reproducibilidad se encuentra en la carpeta raíz o directorio de trabajo. --- # Protocolos reproducibles .center[ ![:scale 70%](https://lisa-coes.github.io/ipo/standards.png) ] --- # Ejemplo protocolo reproducible: [TIER](https://www.projecttier.org/) .center[ ![:scale 60%](../../files/img/slides/tier.png) ] --- .pull-left-narrow[ # Protocolo TIER ] .pull-right-wide[ ![:scale 100%](../../files/img/slides/tierfolders.png) ] --- # Protocolo .blue[IPO] .pull-left[ ![:scale 70%](https://lisa-coes.com/input/ipo-hex.png) ] .pull-right[ # .blue[I]nput # .blue[P]rocesamiento # .blue[O]utput ] --- # Protocolo IPO - Estructura de archivos y carpetas ![](../../files/img/slides/ipofolder.png) --- # Protocolo IPO - Estructura de archivos y carpetas .center[ ![:scale 80%](../../files/img/slides/ipo-folderstr.png) ] --- # Protocolo IPO en contexto R/RMarkdown - RMarkdown tiene una lógica en sí reproducible, y puede simplificar el uso de protocolos. - Si todo el procesamiento se hace en el mismo documento paper.Rmd, entonces basta con la carpeta input de IPO. - Recomendación: realizar la preparación en código externo (carpeta proc) y el análisis en el paper.Rmd. - Es solo una **propuesta**, el sentido último es la reproducibilidad más que el cumplimiento estricto --- Mayores detalles en .red[LISA] (Laboratorio de Investigación Social Abierta): .center[ ![:scale 30%](../../files/img/slides/lisacoes-qr.png) [lisa-coes.com/ipo-repro](https://lisa-coes.com/ipo-repro/) ] --- class: roja right # Flujo de trabajo reproducible ## A. Directorio de trabajo ## B. Rutas relativas ## C. Dinámica flujo --- class: roja right # Flujo de trabajo reproducible ## .yellow[A. Directorio de trabajo] ## B. Rutas relativas ## C. Dinámica flujo --- # A. Directorio de trabajo - proyecto **autocontenido**: reproducible sin necesidad de archivos externos - requisito: establecer **directorio de trabajo** - posición de referencia de todas las operaciones al interior del proyecto - también llamado **directorio raíz** --- # Estableciendo directorio de trabajo - forma tradicionalen R: - `setwd(ruta-a-carpeta-de-proyecto)` - problemas: hace referencia a ruta local en el computador donde se está trabajando, por lo tanto no es reproducible y **se debe evitar** -- - alternativa sugerida en R: .content-box-yellow[ .center[ # **RStudio Projects** ]] --- # RStudio Projects - La funcionalidad **Projects** de RStudio permite establecer claramente un directorio de trabajo de manera eficiente - Para ello, genera un archivo de extensión **.Rproj** en el directorio raiz de la carpeta del proyecto -- - Luego se facilita acceder a la carpeta del proyecto en RStudio ejecutando desde el administrador de archivos del computador (file manager) el archivo **.Rproj** - para comprobar, ejecutar `getwd()` y debería dar la ruta hacia la carpeta del proyecto --- .pull-left[ # RStudio Projects - File -> New Project ![](https://d33wubrfki0l68.cloudfront.net/87562c4851bf4d0b0c8415dc9d6690493572e362/a6685/screenshots/rstudio-project-1.png) ] .pull-right[ <br> <br> <br> <br> <br> ![](https://d33wubrfki0l68.cloudfront.net/0fa791e2621be297cb9c5cac0b2802223e3d7714/57d89/screenshots/rstudio-project-2.png) ] --- # RStudio Projects .center[ ![](https://d33wubrfki0l68.cloudfront.net/dee6324df1f5c5121d1c1e9eed822ee52c87167b/1f325/screenshots/rstudio-project-3.png) ] --- class: roja right # Flujo de trabajo reproducible ## A. Directorio de trabajo ## .yellow[B. Rutas relativas] ## C. Dinámica flujo --- # B. Rutas relativas - forma de "señalar el camino" para abrir y guardar archivos al interior de una carpeta de proyecto autocontenido (= sin referencias locales) - este camino tiene básicamente 3 direcciones: - bajar -> hacia subcarpetas - subir -> hacia carpetas superiores - subir y bajar -> hacia otras subcarpetas --- # Rutas relativas: bajando - para **"bajar"** hacia a una subcarpeta, simplemente damos la ruta de la carpeta/archivo - ej: si estoy en el archivo paper.Rmd (directorio raíz), y quiero incluir una imagen (directorio input/images/imagen.jpg), entonces la ruta es `input/images/imagen.jpg` - o para señalar la ruta al bib desde paper.Rmd (en raíz): `input/bib/referencias.bib` --- # Rutas relativas: subiendo - para **subir** se utilizan los caracteres `../` por cada nivel. - Ej: si quiero guardar una tabla en el directorio raíz generada desde un archivo de código en la subcarpeta proc, entonces la ruta es `../tabla.html` --- # Rutas relativas: subiendo y bajando - combinación de las anteriores - Ej: para abrir la base de datos original en la subcarpeta input/data desde el código de procesamiento en la subcarpeta proc, entonces: `../input/data/original.dat` --- class: roja right # Flujo de trabajo reproducible ## A. Directorio de trabajo ## B. Rutas relativas ## .yellow[C. Dinámica flujo] --- # C. Dinámica de flujo principal de trabajo ![](https://multivariada.netlify.app/images/produccion2.png) --- class: inverse ## .red[Resumen flujo de trabajo colaborativo y reproducible] - Estructura: Protocolo (IPO) - Flujo - Directorio de trabajo, carpeta autocontenida, `.Rproj` - Rutas relativas - Dinámica de trabajo --- class: inverse # .red[Contenidos] .pull-right-wide[ ## 1. Flujo de trabajo ## 2. .orange[Preparación de datos] ] --- # Preparación de datos - trabajo con datos: preparación y análisis - preparación: "limpieza", ajustes, etc. - .red["El análisis de datos es en gran parte preparación de datos"] - Abarca ajustes como: - recodificación de valores - (re)etiquetado de valores/variables - manejo de casos perdidos - generación de índices --- # Protocolo de preparación de datos - hoja de código aparte (ej: preparacion.R o preparacion.Rmd) - comienza llamando la base original, y termina generando la base preparada para el análisis - avanza variable por variable detallando: - valores originales - opciones de recodificación - manejo de casos perdidos - etiquetados - tabla final descriptiva univariada --- class: inverse # Práctica: - repasar preparación de datos en [multivariada.netlify.app/assignment/01-code](https://multivariada.netlify.app/assignment/01-code/) - agregar al ejercicio el uso de Rprojects, rutas relativas y protocolo IPO --- class: front .pull-left[ # Encuestas Sociales ## Juan Carlos Castillo ## Sociología FACSO - UChile ## 2do Sem 2022 ## [.green[encuestas-sociales.netlify.com]](https://encuestas-sociales.netlify.com) ] .pull-right[ .right[ <br> ![:scale 70%](../../files/img/eval-hires.png) ] ]