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]  ] ] --- 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  --- # ¿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[  ] --- # Ejemplo protocolo reproducible: [TIER](https://www.projecttier.org/) .center[  ] --- .pull-left-narrow[ # Protocolo TIER ] .pull-right-wide[  ] --- # Protocolo .blue[IPO] .pull-left[  ] .pull-right[ # .blue[I]nput # .blue[P]rocesamiento # .blue[O]utput ] --- # Protocolo IPO - Estructura de archivos y carpetas  --- # Protocolo IPO - Estructura de archivos y carpetas .center[  ] --- # 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[  [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  ] .pull-right[ <br> <br> <br> <br> <br>  ] --- # RStudio Projects .center[  ] --- 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  --- 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>  ] ]