class: title-slide, center, middle background-image: url(https://images.unsplash.com/photo-1587533042502-1209d3f2d891?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1548&q=80) background-size: cover # <span style=" font-weight: bold; color: #264653 !important;border-radius: 4px; padding-right: 4px; padding-left: 4px; background-color: #FFFFFF !important;font-size: 60px;" >Rmarkdown</span> # <span style=" font-weight: bold; color: #264653 !important;border-radius: 4px; padding-right: 4px; padding-left: 4px; background-color: #FFFFFF !important;font-size: 60px;" >Básicos</span> <br> <h2><span style=" font-weight: bold; color: #264653 !important;border-radius: 4px; padding-right: 4px; padding-left: 4px; background-color: #FFFFFF !important;" >Miriam Lerma</span></h2> <h3><span style=" font-weight: bold; color: #264653 !important;border-radius: 4px; padding-right: 4px; padding-left: 4px; background-color: #FFFFFF !important;" >Abril 2021</span></h3> --- class:inverse # Intro - [Que es Rmd](#rmd) - [Texto, Chunks, YAML & Knit](#texto) - [Titulos](#titulos) - [Cambiar parametros del chunk](#chunks) - [Cambiar Outputs](#outputs) - [Figuras](#figuras) - [Tablas](#tablas) -- ## Ustedes - Conocimientos básicos de R - Quieren compartir sus avances con otros - Quieren tener un buen seguimiento de lo que hicieron y poder re-hacer sus análisis con otros datos en el futuro --- class: inverse ## Créditos & Recursos - Material de Rmarkdown. [
RMarkdown por RStudio](https://rmarkdown.rstudio.com/lesson-2.html) [
Rmarkdown por Yihui Xie](https://bookdown.org/yihui/rmarkdown/) [
Rmarkdown por Allison Horst](https://github.com/allisonhorst/rladies-bangalore-rmarkdown) - Tutoriales en español: [
RLadiesBuenosAires](https://www.youtube.com/watch?v=zENhUzKfCws) - Tutoriales en ingles: [
RLadiesOslo](https://www.youtube.com/watch?v=Xn5AmUf7gDQ&t=6552s)<br> [
RLadiesFreiburg](https://www.youtube.com/watch?v=H91WSwALx1A&t=3777s)<br> [
RLadiesJohannesburgo](https://www.youtube.com/watch?v=tSrf4n7DFYI&t=55s) - Imagen de portada [Unsplash by Maryna Yazbeck](https://unsplash.com/@yazbeckistan) --- name: rmd ## 1. RMarkdown Rmarkdown es muy conveniente porque podemos exportar lo que hicimos en Rstudio a html o documentos word. Tambien podemos crear presentaciones... <br> .right[...de hecho esta es una presentación en Rmd.] -- Hay **muchas** maneras de trabajar en Rmd. Solo cubriré algunas. --- ## 1.1. Teoría Markdown es texto plano... .right[...algo así como lo que escriben en un block de notas.] La ventaja de Rmd es que puedes incluir mucho texto e incluso se pueden escribir tesis, libros, árticulos, páginas web y presentaciones dentro de **RStudio**. -- Lo que lo hace especial es que en Rmd ádemas puedes incluir: - Código y los resultados de ese código sin tener que salir de RStudio. --- ## 1.1. Teoría Lo que hace Rmd es que "traduce" lo que escribiste en Rmd usando **PanDoc**. .center[ <img src="https://d33wubrfki0l68.cloudfront.net/61d189fd9cdf955058415d3e1b28dd60e1bd7c9b/b739c/lesson-images/rmarkdownflow.png" width="600" /> ] --- ## 1.2. Porque usar Rmd? Al generar un **output**, la ventaja es que puedes leer lo que dice el documento, aunque no tengas R. Por ejemplo: ustedes estan leyendo esta presentación. -- También, podemos tener resultados de alguna función sin tener que mostrar el código y sin tener que salir y copiar los resultados en un documento word. Entonces me permite escribir cosas como: _Aquí quiero cargar una librería y ver el número de observaciones_ ```r library(datos) ``` ``` ## Warning: package 'datos' was built under R version 4.2.3 ``` ```r Pingus<-pinguinos nrow(Pingus) ``` ``` ## [1] 344 ``` .right[y ver los resultados.] --- ## 1.3. R vs Rmd **Consideraciones: ** Rmd tiene diferente comportamiento que R - Rmarkdown corre en un enviroment limpio. - Todas tus variables tienen que esta dentro de tu markdown. - De hecho si tienes cosas en tu environment no interesa, tienen que estar dentro del documento. - Esto asegura que es reproducible, si no tiene continuidad no corre. --- ## 1.4. Como abrir un Rmd. File>NewFile>RMarkdown <br> Nos va a pedir un nombre de archivo, pueden ponerle 'Prueba_Rmd' Se vera algo así: <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/RmdNew.JPG" height="400" /> --- name: texto ## 1.5. Diferencias entre R y Rmd Diferencias entre R y Rmd: - yaml - output - chunks - knit ... las veremos por partes. --- ## 2.1. Texto Para escribir texto puedes usar las partes en blanco, en general se escribe igual que en cualquier programa como en tu block de notas o word. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/RmdNew.JPG" height="400" /> Si vas a la par, despues de abrir tu documento, borra el contenido, excepto el YAML. --- ## 2.2. Texto Solo que para utilizar formatos especiales como: - *cursivas* hay que escribir un asterisco antes y uno después. - **negritas** con dos asteriscos antes y uno después. - ***cursiva y negritas*** con tres asteriscos antes y uno después. Otras opciones: [
Texto en Rmd](https://rmarkdown.rstudio.com/lesson-8.html) --- class: inverse, center, middle # Chunks --- ## 2.1. Chunks Las partes grises son los chunks. - Se escribe código dentro de tres tildes invertidas al inicio y al final y {r} entre corchetes. - Podemos correr la linea del código usando la flechita verde
, el boton **Run** en la parte de arriba del editor de codigo o **ctrl+enter**. - El resultado va a aparecer en el documento en lugar de en la consola. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/RmdNew.JPG" height="400" /> --- ## 2.2. Chunks Podemos agregar nuevos chunks usando **Ctrl+Alt+I** , usando **back ticks** o dandole click al simbolo que tiene una C en rectangulo verde y un simbolo de **+**. El código de R tiene que estar dentro de estas partes grises para que se ejecute. **Errores comunes son**: - No cerrar los corchetes **{}** - No tener las tres tildes invertidas al inicio y al final - Poner codigo fuera de los chunks <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/RmdNew.JPG" height="400" /> --- class: inverse, center, middle # 3. YAML --- ## 3.1. YAML YAML significa _“YAML Ain’t Markup Language”._ Por default aparece: title, author, date, **output**. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/YAML.JPG" height="400" /> --- ## 3.2. YAML Al cambiar el YAML cambiara la informacion que aparece en nuestro reporte.<br> Al cambiar el output, podemos generar reportes en diferentes formatos. **Errores comunes** Al renderizar nuestro reporte, alguna parte no es compatible con Pandoc (o LateX) <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/YAML.JPG" height="400" /> --- class: inverse, center, middle # 4. Knitr --- ## 4.1. Knitr Es el boton que aparece en la parte de arriba, es como una bolita azul con agujas de tejer. Este boton **knitr** es una herramienta que permite la generación de informes dinámico usando R. **Nota**: cada vez que usamos knit se guardan los cambios en el documento. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/knitr.jpg" height="400" /> --- class: inverse, center, middle # 5. Ejercicios --- ## 5. Ejercicios juntos 1. Abrir RStudio 2. Abrir un archivo Rmd (File>NewFile>Rmd) 3. Darle un nombre al archivo y escribir tu nombre 4. Borrar todo menos el YAML 5. Agregar código en un chunk 6. Crear una gráfica en un chunk 7. Agregar texto Recuerden, pueden usar el botón verde para correr el código y **Ctrl+Alt+I** para crear un nuevo chunk. --- ## 5. Ejercicios juntos Para el texto: Escribe: 'Voy a cargar datos de pinguinos' - Pon dos **asteriscos** antes y después de la palabra 'pinguinos'. - Pon un **asterisco** antes y después de la palabra 'datos'. - Pon tres **asteriscos** antes y después de la palabra 'cargar'. Para la parte de la código pueden escribir: ```r library(datos) Pingus<-pinguinos nrow(Pingus) #numero de observaciones ``` Para el gráfico: ```r library(ggplot2) ggplot(Pingus, aes(x=largo_pico_mm, y=alto_pico_mm))+ geom_point() ``` Dale click a knit. Te va a pedir que le des un nombre y te van a aparecer muchas cosas en lo que era antes tu terminal (ahora esta en la pestaña R Markdown). Espera a que aparezca tu html
--- class: inverse, center, middle # Más funcionalidades --- name: titulos # 6.1. Titulos Si queremos poner títulos usar #.<br> - Para titulo de primer nivel #.<br> - Para titulo de segundo nivel ##.<br> - Para titulo de tercer nivel ###.<br> **Importante**: Hay que poner dos espacios o br dentro de '<' y '>' donde quieras que pase a la siguiente linea. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/RmdNew.JPG" height="350" /> --- ## 6.2. Navegar con titulos Una vez hayamos incluido titulos podemos navegar dentro de nuestro archivo. Dale click al cuadrito con las rayitas junto al compás o usa **Crtl+Shft+O**. Deben aparecer los títulos para navegar en nuestro lado derecho. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/Navegar.JPG" height="400" /> --- name: chunks # 7. Chunks En la parte de los chunks podemos agregar: - **echo=TRUE** para mostrar el codigo en el output. - **eval=TRUE** para ejecuta el codigo, **eval=FALSE** para no ejecutar el codigo. - **warning=FALSE** para evitar que aparezcan las advertencias. - **message=FALSE** para evitar que aparezcan mensajes, por ejemplo cuando cargamos librerías. Otras opciones: [
chunk options](https://rmarkdown.rstudio.com/lesson-3.html) <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/echo.jpg" height="400" /> --- ## 7.2. Chunks **Buenas practicas**: Darle nombres a tus code chunks (despues del { y la r). Esto porque si tenemos algún problema sabemos donde se genero el problema. El nombre de este chunk es 'setup' <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/echo.jpg" height="400" /> --- # 8. Outputs Los documentos se pueden exportar en diversos formatos, los más comunes son word, pdf y html. Pros y contras de usar uno o el otro. - **word**: lo podemos compartir mas fácilmente, y muchas revistas requieren word. - **pdf**: se puede compartir mas fácilmente, pero no es tan fácil de editar. - **html**: se puede incluir toda clase de contenidos⭐, pero resulta poco familiar. --- name: outputs ## 8.1. Outputs Para cambiar el output, hay que especificarlo en el YAML, o darle click a la flechita
de Knit y seleccionar la opción deseada. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/Outputs.JPG" height="400" /> Para modificar el formato de word [ve aquí](https://rfortherestofus.com/2020/07/word-reference-documents-rmarkdown/) --- class: inverse, center, middle # 9. Ejercicios --- # 9.1. Ejercicios - Agregar titulos y navegar usando los titulos - Cambiar los datos en el YAML - Crear outputs en word, pdf y html - Cambiar opciones en los chunks **Nota**<br> Puede que necesiten instalar tinytex<br> ```r tinytex::install_tinytex() ``` - [
Que es tiny tex?](https://yihui.org/tinytex/) --- # 9.1. Ejercicios - Agregar titulos y navegar usando los titulos Copia y **agrega un numeral en cada sección.** Introducción Aquí escribiré mi introducción Métodos Aquí escribiré mis métodos Análisis preliminares Aquí escribiré mis análisis Resultados Aquí escribiré mis resultados Discusión Aquí escribiré mi discusión **Nota** Hay que agregar un espacio entre los títulos --- # 9.1. Ejercicios - Cambiar los datos en el YAML<br> Fecha de hoy<br> Tu nombre<br> - Crear outputs en word, pdf y html<br> word_document y knit<br> pdf_document y knit<br> html_document y knit<br> - Cambiar opciones en los chunks<br> Agrega echo=FALSE en tu primer chunk<br> Agrega message=FALSE en tu primer chunk<br> Agrega eval=FALSE en tu segundo chunk<br> **Recuerda darle al boton knit para ver la diferencia, o usar la pestaña Viewer** --- class: center, middle, inverse # 10. Imágenes, Graficas y Tablas --- name: figuras ## 10.1. Imágenes - Para agregar imágenes desde **tu computadora** se usa signo de admiración, corchetes, y dentro la dirección de la imagen. Por ejemplo: ![ pie de foto ] (Imágenes/Foto.jpg) - Desde **Internet** se puede usar: knitr::include_graphics('') con el enlace de la imagen entre paréntesis. Por ejemplo:<br> ```r knitr::include_graphics('https://images.unsplash.com/photo-1523224339316-5e4ae73929cc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=666&q=80') ``` .center[ <img src="https://images.unsplash.com/photo-1523224339316-5e4ae73929cc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=666&q=80" height="200" /> ] --- ## 10.2. Graficas Si creamos un plot con ggplot en un chunk y queremos ajustar el tamaño, el tamaño se puede definir dentro de los corchetes { } y usando: - fig.height - fig.width Para hacer zoom de tu grafico, debajo de tu chunk aparece un cuadrito con una flechita. <img src="https://raw.githubusercontent.com/MiriamLL/Curso_CIAD/main/Figuras/Figuras.JPG" height="400" /> --- name: tablas ## 10.3. Tablas Hay muchos paquetes para incluir tablas. El básico es knitr + kable dentro de un **chunk**. ```r knitr::kable(TablaPinguinos) ``` --- ## 10.4. Tablas Para recrear la tabla anterior el codigo es: ```r library(tidyverse) TablaPinguinos<-Pingus %>% group_by(especie,sexo) %>% drop_na(masa_corporal_g)%>% summarise(mean = mean(masa_corporal_g), n = n()) ``` --- ## 10.4. Tablas Otra opción es usando la librería {kableExtra} ```r library(kableExtra) ``` Para incluir la tabla en el texto se usa la función {kbl} ```r kbl(TablaResultados, booktabs = T, caption = "Demo Table") %>% #Titulo kable_styling(latex_options = c("striped", "hold_position"), full_width = F) ``` <table class="table" style="width: auto !important; margin-left: auto; margin-right: auto;"> <caption>Demo Table</caption> <thead> <tr> <th style="text-align:left;"> term </th> <th style="text-align:right;"> estimate </th> <th style="text-align:right;"> std.error </th> <th style="text-align:right;"> statistic </th> <th style="text-align:right;"> p.value </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> (Intercept) </td> <td style="text-align:right;"> 23.0680794 </td> <td style="text-align:right;"> 3.0342298 </td> <td style="text-align:right;"> 7.602614 </td> <td style="text-align:right;"> 0e+00 </td> </tr> <tr> <td style="text-align:left;"> alto_pico_mm </td> <td style="text-align:right;"> 0.8570263 </td> <td style="text-align:right;"> 0.1650259 </td> <td style="text-align:right;"> 5.193285 </td> <td style="text-align:right;"> 7e-07 </td> </tr> </tbody> </table> --- ## 10.4. Tablas Para recrear la tabla el codigo es: ```r Adelia<-Pingus%>%filter(especie=='Adelia') #filtra los datos lm_Adelia<-lm(data=Adelia,largo_pico_mm ~ alto_pico_mm) #crea el modelo TablaResultados<-broom::tidy(lm_Adelia)#crea la tabla ``` Si no recuerdan el código es de la clase de [
modelo lineal](https://miriamll.github.io/Curso_CIAD/Clase7) --- ## 10.4. Tablas Finalmente, para agregar descripción a la tabla se puede agregar **caption** ```r knitr::kable(TablaPinguinos, caption = "Tabla 1. Ejemplo.") ``` --- class: inverse, center, middle # 11. Ejercicios --- # 11. Ejercicios - Importa una imagen desde Internet usando [
Unsplash](https://unsplash.com/) o desde tu computadora - Crea una tabla - Cambia el tamaño de tu gráfico --- ## 11.1. Ejercicios - Escribe knitr::include_graphics() dentro de un chunk, copia y pega el link de alguna foto de internet o alguna desde tu computadora. <br> No olvides las comillas. - Escribe knitr::kable y dentro el nombre de tu tabla <br> Puedes crear una tabla usando ```r library(tidyverse) library(datos) Pingus<-datos::pinguinos TablaPinguinos<-Pingus %>% group_by(especie,sexo) %>% drop_na(masa_corporal_g)%>% summarise(mean = mean(masa_corporal_g), n = n()) knitr::kable(TablaPinguinos) ``` - Agrega fig.height, fig.width a tu figura. Prueba con 1,5,10. ```r #{r, fig.width=1,fig.height=1} ggplot(Pingus, aes(x=largo_pico_mm, y=alto_pico_mm))+ geom_point() ``` --- class: left, inverse # Contacto Recapitulando - [Que es Rmd](#rmd) - [Texto, Chunks, YAML & Knit](#texto) - [Titulos](#titulos) - [Cambiar parametros del chunk](#chunks) - [Cambiar Outputs](#outputs) - [Figuras](#figuras) - [Tablas](#tablas) .right[ Para dudas, comentarios y sugerencias: Escríbeme a miriamjlerma@gmail.com Este material esta accesible y se encuentra en mi [
github](https://github.com/MiriamLL/Curso_CIAD/) y mi [
página](https://www.miriam-lerma.com) ] <br> .center[ <h3>
[Volver ](https://www.miriam-lerma.com/teaching.html) ]