Capítulo 5 R Markdown

5.1 Informes con R Markdown

5.1.1 Introduccion

Markdown es un lenguaje que combinado con R y \(\textit{LaTeX}\) permite realizar documentos que integran distintas posibilidades en un simple script.

Si bien permite realizar documentos con diferentes formatos7 este tutorial se concentra en archivos con formato PDF.

Para poder utilizarlo, además de las librerías que hemos visto, se necesitan las siguientes:

  1. markdown

  2. rmarkdown

  3. bookdown

  4. tinytex

  5. knitr

5.1.2 Referencias cruzadas

La forma de realizar referencias cruzadas cambia dependiendo del elemento que se quiere referenciar (bibliografía, secciones, tablas, figuras, ecuaciones).

5.1.2.1 Ejemplos (de varias cosas)

La Sección 5.1.1 tiene un label mientras que la Sección 5.1.2 no.

Una vez que terminé de estudiar todo el material de este maravilloso curso, el Cuadro 5.1 es muy fácil de hacer. Se observa que en promedio el largo de sépalo es de 5.8 con un desvío estándar de 0.83.

Tabla 5.1: Estadísticas descriptivas de la base IRIS
Variable Obs Media Mediana SD Min Max
Petal.Length 150 3.76 4.35 1.77 1.0 6.9
Petal.Width 150 1.20 1.30 0.76 0.1 2.5
Sepal.Length 150 5.84 5.80 0.83 4.3 7.9
Sepal.Width 150 3.06 3.00 0.44 2.0 4.4

La Figura 5.1 muestra box plots de Sepal.Length por especie y esta creada on the fly (notar que los puntos de datos están algo distorsionados para que no queden en línea recta).

Box plot con datos

Figura 5.1: Box plot con datos

Por su parte, la Figura 5.2 exhibe el logo de R (importando la imagen desde el disco) para hacerle un sencillo homenaje.

Logo de R

Figura 5.2: Logo de R

A la ecuación (5.1) ya la hemos visto antes, que representa?

\[\begin{equation} \tag{5.1} Y = \beta_{0} + \beta_{1} X_1 + \epsilon \end{equation}\]

Último mensaje del curso: Lo importante es NO perder la identidad (véase ecuación (5.2)).

\[\begin{equation} \tag{5.2} I = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \end{equation}\]

5.1.3 Regresion

Se estiman 2 especificaciones con la base de datos Boston. En el Cuadro 5.2 la columna \((1)\) muestra la estimación de un modelo lineal simple mientras que en la columna \((2)\) presenta un modelo lineal múltiple.

Tabla 5.2: Estimación MCO.
Variable dependiente
Valor promedio de la vivienda
(1) (2)
Número de habitaciones 9.102*** 5.095***
(0.419) (0.444)
Porcentaje socioeconómico bajo -0.642***
(0.044)
Constante -34.671*** -1.358
(2.650) (3.173)
Observations 506 506
Adjusted R2 0.483 0.637
Nota: p<0.1; p<0.05; p<0.01

5.1.4 Bullets

  • Vamos a usar un segundo nivel con referencias.
    • Capítulo 27 de Wickham y Grolemund (2017). Versión online
    • Libro de recetas Xie, Dervieux, y Riederer (2022)
    • R Markdown Xie, Dervieux, y Riederer (2021)
    • La guía definitiva Xie, Allaire, y Grolemund (2021)
    • Más posibilidades aquí o aquí

Bibliografia

---
title: "Informes con R Markdown"
author: "Máximo Sangiácomo"
date: "2023-06-15"
output:
  bookdown::pdf_document2:
fontsize: 12pt
linestretch: 1.2
lang: es    
link-citations: yes
bibliography: ['biblio.bib']
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(fig.width = 7, out.height = '30%', fig.align = "center", echo = FALSE, message=F, warning = F)
```
```{r lib, include=FALSE}
rm(list=ls())
gc()
library(tidyverse)
```
# Introduccion {#intro}

`Markdown` es un lenguaje que combinado con `R` y $\textit{\textsc{LaTeX}}$ permite realizar documentos que integran distintas posibilidades en un simple _script_.

Si bien permite realizar documentos con diferentes formatos^[Por ejemplo, MS Word, HTML, PDF, beamer.] este tutorial se concentra en archivos con formato PDF.

Para poder utilizarlo, además de las librerías que hemos visto, se necesitan las siguientes:

1. `markdown`

2. `rmarkdown`

3. `bookdown`

4. `tinytex`

5. `knitr`

# Referencias cruzadas

La forma de realizar referencias cruzadas cambia dependiendo del elemento que se quiere referenciar (bibliografía, secciones, tablas, figuras, ecuaciones).

## Ejemplos (de varias cosas)

La Sección \@ref(intro) tiene un _label_ mientras que la Sección \@ref(referencias-cruzadas) no.

```{r stat}
tab = iris %>% 
  dplyr::select_if(is.numeric) %>% 
  pivot_longer(everything(), names_to = 'Variable', values_to = 'Value') %>%
  group_by(Variable) %>% 
  summarise(
    Obs = n(),
    Media = mean(Value, na.rm = T),
    Mediana = median(Value, na.rm = T),
    SD = sd(Value, na.rm = T),
    Min = min(Value, na.rm = T),
    Max = max(Value, na.rm = T)) %>% 
  ungroup()
```

Una vez que terminé de **estudiar todo el material** de este maravilloso curso, el Cuadro \@ref(tab:tab1) es muy fácil de hacer. Se observa que en promedio el largo de sépalo es de 5.8 con un desvío estándar de 0.83.
```{r tab1}
knitr::kable(tab, align = 'lcccccc', digits = c(0,0,2,2,2,1,1), format = 'latex', position = '!h', caption = "Estadísticas descriptivas de la base IRIS")
```
La Figura \@ref(fig:fig1) muestra _box plots_ de `Sepal.Length` por especie y esta creada _on the fly_ (notar que los puntos de datos están algo distorsionados para que no queden en línea recta). 

```{r fig1, fig.cap='Box plot con datos'}
ggplot(data = iris) +
  aes(x = Species, y = Sepal.Length, color = Species) +
  geom_boxplot() +
  geom_jitter(position = position_jitter(0.2)) +
  NULL
```

\newpage
Por su parte, la Figura \@ref(fig:fig2) exhibe el logo de R (importando la imagen desde el disco) para hacerle un sencillo homenaje. 

```{r fig2, fig.cap='Logo de R', out.width = '30%'}
knitr::include_graphics('smallorb.png')
```
A la ecuación \@ref(eq:ml) ya la hemos visto antes, que representa?

\begin{equation}
(\#eq:ml)
  Y = \beta_{0} + \beta_{1} X_1 + \epsilon
\end{equation}

**Último mensaje** del curso: Lo **importante es NO** perder la identidad (véase ecuación \@ref(eq:mat)).

\begin{equation}
(\#eq:mat)
  I = 
    \begin{bmatrix} 
      1 & 0 & 0 \\
      0 & 1 & 0 \\
      0 & 0 & 1
    \end{bmatrix}
\end{equation}
# Regresion

Se estiman 2 especificaciones con la base de datos `Boston`. En el Cuadro \@ref(tab:reg1) la columna $(1)$ muestra la estimación de un modelo lineal simple mientras que en la columna $(2)$ presenta un modelo lineal múltiple.

```{r stargazer}
library(stargazer)
library(ISLR2)
lm.fit1 = lm(medv ~ rm, data = Boston)
lm.fit2 = lm(medv ~ rm + lstat, data = Boston)
```

```{r stargazer2, results = "asis"}
stargazer(lm.fit1, lm.fit2, type = 'latex', header=FALSE, label = 'tab:reg1', title = 'Estimación MCO.', table.placement = "!h",
          keep.stat = c('n', 'adj.rsq'),
          dep.var.caption = 'Variable dependiente',
          dep.var.labels   = 'Valor promedio de la vivienda',
          covariate.labels = c('Número de habitaciones', 
                               'Porcentaje socioeconómico bajo', 
                               'Constante'),
          notes.label = 'Nota:') 
```
# Bullets

* Vamos a usar un segundo nivel con referencias.
   + Capítulo 27 de @R4DS. Versión [online](https://r4ds.had.co.nz/r-markdown.html)
   + Libro de recetas @Xie2022
   + R Markdown @Xie2021b
   + La guía definitiva @Xie2021
   + Más posibilidades [aquí](https://rmarkdown.rstudio.com/) o [aquí](https://bookdown.org/)
# Bibliografia {-}

Bibliografia

Wickham, Hadley, y Garrett Grolemund. 2017. R for Data Science. O’REILLY. https://r4ds.had.co.nz/.
Xie, Yihui, J. J. Allaire, y Garrett Grolemund. 2021. R Markdown: The Definitive Guide. CRC Press. Chapman; Hall Book. https://bookdown.org/yihui/rmarkdown/.
Xie, Yihui, Christophe Dervieux, y Emily Riederer. 2021. bookdown: Authoring Books and Technical Documents with R Markdown. CRC Press. Chapman; Hall Book. https://bookdown.org/yihui/bookdown/.
———. 2022. R Markdown Cookbook. CRC Press. Chapman; Hall Book. https://bookdown.org/yihui/rmarkdown-cookbook/.

  1. Por ejemplo, MS Word, HTML, PDF, beamer.↩︎