class: center, title-slide .title[ # El ABC de RMarkdown ] .author[ ### Erick Cuevas Fernández
01 de agosto de 2022 ] --- class: inverse .pull-right[<br> <img src="data:image/png;base64,#css/xolo.png" width="80%" style="display: block; margin: auto;" /> ] # Contenido: 1. ¿Qué es y para que sirve RMarkdown? 2. Primeros pasos: Crear un archivo `.Rmd` 3. Sintaxis Markdown: 3.1 Elementos de bloque: - Encabezados - Listas - Citas - Párrafos --- class: inverse .pull-right[<br> <img src="data:image/png;base64,#css/xolo.png" width="80%" style="display: block; margin: auto;" /> ] # Contenido: 3.2 Elementos de línea: - Énfasis - Expresiones matemáticas - Enlaces - Código - Comentar texto - Imagen --- class: center # Agradecimientos Este contenido se basó en: - [Advanced R Markdown Workshop rstudio::conf 2019](https://arm.rbind.io) - [R Markdown Cookbook](https://bookdown.org/yihui/rmarkdown-cookbook/) --- # Preparar nuestra sesión de R ```r # Instalar desde el repositorio de CRAN install.packages("rmarkdown") # O también puedes instalar la versión en desarrollo if (!requireNamespace("devtools")) install.packages('devtools') devtools::install_github('rstudio/rmarkdown') # Instalar la paquetería para poder compilar en LaTeX install.packages('tinytex') tinytex::install_tinytex() # install TinyTeX ``` Con RStudio en automático tenemos [**pandoc**](http://pandoc.org/) y [**knitr**](https://yihui.org/knitr/) --- class: inverse # 1. ¿Qué es y para que sirve RMarkdown? **Rmarkdown** se basa en el lenguaje *markdown* que sirve para convertir texto plano a formato HTML. Este tipo de archivo de archivo esta disponible en RStudio, y esto nos permite integrar código con texto. Puedes obtener los siguientes archivos de salida: - PDF - HTML - Microsoft Word --- <img src="data:image/png;base64,#img/how_work.png" width="80%" style="display: block; margin: auto;" /> `.Rmd` es nuestro archivo editable y consta de metadata, texto y bloques de código. `Knit` convierte el `.Rmd` en `.md` (*Tejer*). `Pandoc` hace la introversión entre los distintos tipos de archivos de salida. --- class: chapter-slide # Algunos usos --- ##Agregar en un informe la información de una localización ```r library(leaflet) leaflet() %>% addTiles() %>% setView(lat = 18.95, lng = -99.239, zoom = 13) ```
--- class: center ## Poner la chicharronera (Fórmula cuadrática en un texto) Esto es la chicharronera dentro de un texto `$$x = \frac {-b \pm \sqrt {b^2 - 4ac}}{2a}$$` Y puedo seguir describiendo lo que siga haciendo. `$$\text{La Fórmula Cuadrática es }x = \frac {-b \pm \sqrt {b^2 - 4ac}}{2a}$$` --- .center[ # Ejemplos de uso y páginas útiles ] - [RPubs](https://rpubs.com) - [Generar correos personalizados](https://rmarkdown.rstudio.com/articles_mail_merge.html) - [Escribir artículos](https://elifesciences.org/labs/cad57bcf/composing-reproducible-manuscripts-using-r-markdown) - [rticles](https://github.com/rstudio/rticles) - [Escribir Libros](https://bookdown.org/) - [Escribir tesis](https://eddjberry.netlify.com/post/writing-your-thesis-with-bookdown/) - [Crear sitios web](https://github.com/seankross/postcards) --- .center[ # Crear un archivo `Rmd` ] ## Paso 1 <img src="data:image/png;base64,#img/abrir_rmd.png" width="80%" style="display: block; margin: auto;" /> --- ## Paso 2 <img src="data:image/png;base64,#img/rmd_op.png" width="80%" style="display: block; margin: auto;" /> --- # Listo, tenemos un archivo listo `Rmd` <img src="data:image/png;base64,#img/rmd.png" width="60%" style="display: block; margin: auto;" /> --- # Estructura básica del RMarkdown **YAML** ```yaml --- title: "Bienvenido CDSB 2022" author: "EMB 2022" date: "2022-08-01" output: html_document --- ``` Aquí podemos configurar nuestro archivo markdown. Básicamente aqui suceden todos los cambios en el formato, para hacer paginas web, diapositivas o informes. --- # Estructura básica del RMarkdown **Markdown** ````markdown Parrafo de R Markdown. Esto es un fragmento de código o "chunk": ```r fit = lm(dist ~ speed, data = cars) b = coef(fit) ``` La pendiente de la regresión es -17.5790949. ```` --- # Sintaxis básica. Encabezados. Encabezados de estilo Setext .pull-left[ ````markdown Título de nivel 1 =================== Título de nivel 2 ------------------- ```` ] .pull-right[ Título de nivel 1 =================== Título de nivel 2 ------------------- ] --- # Sintaxis básica. Encabezados. Encabezados de estilo ATX. Un encabezamiento de estilo ATX consta de uno a seis signos # y una línea de texto .pull-left[ ````markdown # Título de nivel 1 ## Título de nivel 2 ### Título de nivel 3 #### Título de nivel 4 ```` ] .pull-right[ # Título de nivel 1 ## Título de nivel 2 ### Título de nivel 3 ] --- # Sintaxis básica. Citas en bloque. .pull-left[ ````markdown > Esto es una cita en bloque. Este > párrafo tiene dos líneas. > > 1. Esta es una lista dentro de una cita > 2. Segundo elemento ```` ] .pull-right[ <img src="data:image/png;base64,#img/quotes.png" width="100%" style="display: block; margin: auto;" /> ] --- # Sintaxis básica. Citas en bloque. .pull-left[ ````markdown > Esto es una cita en bloque. > > > Cita en bloque, dentro de cita en bloque. ```` ] .pull-right[ <img src="data:image/png;base64,#img/quote_in.png" width="100%" style="display: block; margin: auto;" /> ] --- # Sintaxis básica. Texto en bloque. Útil para cuando queremo ocupar sangrias especificas en el texto. .pull-left[ ````markdown | Dijo el loco, y con noble melancolía | por las breñas del monte siguió trepando, | y al perderse en las sombras, aún repetía: | «¡Hay que vivir sembrando! ¡Siempre sembrando!...» | Rafel Blanco Belmonte ```` ] .pull-right[ <img src="data:image/png;base64,#img/poem.png" width="100%" style="display: block; margin: auto;" /> ] --- # Sintaxis básica. Listas. Para las listas puedes utilizar los siguientes símbolos: `*`, `+`, `-`, números y letras. ¿Qué le falta a la lista (lado izquierdo)? .pull-left[ ```r * Lista principal + manzanas - amarilla - roja + pera + durazno ``` ] .pull-right[ <img src="data:image/png;base64,#img/list_apple.png" width="100%" style="display: block; margin: auto;" /> ] --- # Sintaxis básica. Listas. **NOTA**: si quieres que se enumeren automaticamente usa `*.` en tus listas. Vamos a probarlo. .pull-left[ ```r 9) Nueve 10) Diez 11) Once i. subuno ii. subdos iii. subtres ``` ] .pull-right[ <img src="data:image/png;base64,#img/list_num.png" width="100%" style="display: block; margin: auto;" /> ] --- # Sintaxis básica. Listas. .pull-left[ ```r - [ ] an unchecked task list item - [x] checked item ``` ```r Definicion 1 : Definicion 1 Termino 2 con *resaltado* : Definicion 2 { algo de codigo, parte de Termino 2 } Tercer parrafo de definicion 2. ``` ] .pull-right[ <img src="data:image/png;base64,#img/list_check.png" width="100%" style="display: block; margin: auto;" /> <img src="data:image/png;base64,#img/list_adv.png" width="100%" style="display: block; margin: auto;" /> ] --- # Actividad 1. Abre un `.rmd`. 2. Intenta hacer una lista con dichos mexicanos famosos. 3. Compartenos tu resultado en HTML. ## Ejemplo <img src="data:image/png;base64,#img/list_mex.png" width="70%" style="display: block; margin: auto;" /> --- # Sintaxis básica. Bloques de código. Puedes poner código entre tu texto con el símbolo del "acento al revés" en los extremos de tu código. RMarkdown tiene la disponibilidad de "chunks", tiene la disponibilidad de lenguajes como: Python, SQL, Bash, Rcpp, Stan, JavaScript y CSS. Aquí puedes consultar la guia de referencia de RMarkdown: [https://www.rstudio.com/wp-content/uploads/2015/03/rmarkdown-reference.pdf](https://www.rstudio.com/wp-content/uploads/2015/03/rmarkdown-reference.pdf) Vamos a RStudio a ver como hacerlo. Y vamos a aprender empezar con templates. --- # Elementos de línea. - `*Cursiva*` genera *Cursiva* - `**Resaltada**` genera **Resaltada** - `***Resaltada Cursiva***` genera ***Resaltada Cursiva*** - `[Nombre_Link](URL)` genera [Nombre_Link](https://github.com/ComunidadBioInfo) - `$z = \frac{1}{x} + 4$` genera `\(z = \frac{1}{x} + 4\)` ¿Cómo hago comentario dentro de RMarkdown y cómo agrego una imagen? --- # Actividad - Por equipos de repositorio. Generen en GitHub un repositorio en conjunto. Enlacen RStudio con GitHub. - Generen un archivo `.rmd` por cada participante en su proyecto de R. - Dentro de cada archivo cada uno va a hacer su **curriculum vitae**, lo mas resumido y a manera de ejercicio. Pueden basarse en **templados** como [https://github.com/mitchelloharawild/vitae](https://github.com/mitchelloharawild/vitae). --- .pull-left[<br><br><br><br><br><br><br> .center[ # ¡Gracias! ] ] .pull-right[<br> <img src="data:image/png;base64,#css/xolo.png" width="80%" style="display: block; margin: auto;" /> ]