3 Métodos

Describimos nuestros métodos en este capítulo.

3.1 Código R

Ver https://bookdown.org/yihui/bookdown/r-code.html

El siguiente chunk con código R en el fichero R Markdown:


  ` ``{r chunk-label, echo = FALSE, fig.cap = 'A figure caption.'}
  1 + 1
  rnorm(10)  # 10 random numbers
  plot(dist ~ speed, cars)  # a scatterplot
  ` ``

produce la siguiente salida:

## [1] 2
##  [1]  0.11867281  0.46417189  1.40006207 -0.70326631 -1.37673615
##  [6] -0.32577660  0.05792895 -0.02933921 -0.71725604 -0.63069344
A figure caption.

Figure 3.1: A figure caption.

Podemos insertar gráficos cara a cara utilizando el siguiente código:

`` `{r out.width='45%',fig.show='hold',fig.align='center',fig.cap="Dos gráficos R cara a cara"}
par(mar = c(4, 4, 0.1, 0.1))
plot(pressure, pch = 19, type = "b")
plot(cars, pch = 19)
`` `

Produce la salida que vemos a continuación:

Dos gráficos R cara a caraDos gráficos R cara a cara

Figure 3.2: Dos gráficos R cara a cara

3.2 Fórmulas matemáticas en R Markdown con LaTeX

Se pueden escribir ecuaciones dentro del texto escribiendo entre una pareja de símbolos del dólar $ usando la sintaxis LaTeX, por ejemplo, $f(k) = {n \choose k} p^{k} (1-p)^{n-k}$ (la salida será: \(f(k) = {n \choose k} p^{k} (1-p)^{n-k}\)).

Las expresiones matemáticas que quieran presentarse centradas en un nueva línea pueden ser escritas utilizando un par de dobles símbolos del dólar $$, por ejemplo,

$$ f(k) = {n \choose k} p^{k} (1-p)^{n-k} $$

producirá la siguiente salida:

\[ f(k) = {n \choose k} p^{k} (1-p)^{n-k} \]

Para numerar y hacer referencias a ecuaciones, deben ponerse en los entornos “equation” y utilizar etiquetas, por ejemplo:

\begin{equation}
f(k) = {n \choose k} p^{k} (1-p)^{n-k}
\label{eq:binom}
\end{equation}

La ecuación se mostraría del siguiente modo:

\[\begin{equation} f(k) = {n \choose k} p^{k} (1-p)^{n-k} \label{eq:binom} \end{equation}\]

Para referirnos a ella en cualquier parte del documento escribiríamos: \@ref(eq:binom), por ejemplo, esto se vería en el texto como vea la ecuación \ref{eq:binom}. En “bookdown”, siempre se deben etiquetar las ecuaciones con el prefijo “eq:”.

Nota: las referencias a ecuaciones funcionan correctamente en salidas LaTeX/PDF, y trabaja parcialmente en salidas HTML en el sentido que no pueden hacerse referencias a ecuaciones en otras páginas. Actualmente esta característica no está disponible en salidas word o epub.

3.3 Figuras

Ver https://bookdown.org/yihui/bookdown/figures.html

Para incluir un gráfico en formato “jpg” o “png” puede usarse el comando en un chunk (ajustando los parámetros de la cabecera del chunk):

`` `{r figura01, fig.cap = 'Página oficial de R.', fig.align='center',out.width='80%'}
knitr::include_graphics("oficialR.png")
`` `

El resultado sería:

Página oficial de R.

Figure 3.3: Página oficial de R.

Para hacer referencia a una figura (se ha añadido la etiqueta a la cabecera del chunk “figura01”) podemos escribir: \@ref(fig:figura01) y quedaría como ver la figura 3.3.

3.4 Tablas

Ver https://bookdown.org/yihui/bookdown/tables.html

knitr::kable(
  head(mtcars[, 1:8], 10), booktabs = TRUE,
  caption = 'A table of the first 10 rows of the mtcars data.'
)
Table 3.1: A table of the first 10 rows of the mtcars data.
mpg cyl disp hp drat wt qsec vs
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1

Una tabla muy grande:

knitr::kable(
  iris[1:100, ], longtable = TRUE, booktabs = TRUE,
  caption = 'A table generated by the longtable package.'
)
Table 3.2: A table generated by the longtable package.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa
4.6 3.4 1.4 0.3 setosa
5.0 3.4 1.5 0.2 setosa
4.4 2.9 1.4 0.2 setosa
4.9 3.1 1.5 0.1 setosa
5.4 3.7 1.5 0.2 setosa
4.8 3.4 1.6 0.2 setosa
4.8 3.0 1.4 0.1 setosa
4.3 3.0 1.1 0.1 setosa
5.8 4.0 1.2 0.2 setosa
5.7 4.4 1.5 0.4 setosa
5.4 3.9 1.3 0.4 setosa
5.1 3.5 1.4 0.3 setosa
5.7 3.8 1.7 0.3 setosa
5.1 3.8 1.5 0.3 setosa
5.4 3.4 1.7 0.2 setosa
5.1 3.7 1.5 0.4 setosa
4.6 3.6 1.0 0.2 setosa
5.1 3.3 1.7 0.5 setosa
4.8 3.4 1.9 0.2 setosa
5.0 3.0 1.6 0.2 setosa
5.0 3.4 1.6 0.4 setosa
5.2 3.5 1.5 0.2 setosa
5.2 3.4 1.4 0.2 setosa
4.7 3.2 1.6 0.2 setosa
4.8 3.1 1.6 0.2 setosa
5.4 3.4 1.5 0.4 setosa
5.2 4.1 1.5 0.1 setosa
5.5 4.2 1.4 0.2 setosa
4.9 3.1 1.5 0.2 setosa
5.0 3.2 1.2 0.2 setosa
5.5 3.5 1.3 0.2 setosa
4.9 3.6 1.4 0.1 setosa
4.4 3.0 1.3 0.2 setosa
5.1 3.4 1.5 0.2 setosa
5.0 3.5 1.3 0.3 setosa
4.5 2.3 1.3 0.3 setosa
4.4 3.2 1.3 0.2 setosa
5.0 3.5 1.6 0.6 setosa
5.1 3.8 1.9 0.4 setosa
4.8 3.0 1.4 0.3 setosa
5.1 3.8 1.6 0.2 setosa
4.6 3.2 1.4 0.2 setosa
5.3 3.7 1.5 0.2 setosa
5.0 3.3 1.4 0.2 setosa
7.0 3.2 4.7 1.4 versicolor
6.4 3.2 4.5 1.5 versicolor
6.9 3.1 4.9 1.5 versicolor
5.5 2.3 4.0 1.3 versicolor
6.5 2.8 4.6 1.5 versicolor
5.7 2.8 4.5 1.3 versicolor
6.3 3.3 4.7 1.6 versicolor
4.9 2.4 3.3 1.0 versicolor
6.6 2.9 4.6 1.3 versicolor
5.2 2.7 3.9 1.4 versicolor
5.0 2.0 3.5 1.0 versicolor
5.9 3.0 4.2 1.5 versicolor
6.0 2.2 4.0 1.0 versicolor
6.1 2.9 4.7 1.4 versicolor
5.6 2.9 3.6 1.3 versicolor
6.7 3.1 4.4 1.4 versicolor
5.6 3.0 4.5 1.5 versicolor
5.8 2.7 4.1 1.0 versicolor
6.2 2.2 4.5 1.5 versicolor
5.6 2.5 3.9 1.1 versicolor
5.9 3.2 4.8 1.8 versicolor
6.1 2.8 4.0 1.3 versicolor
6.3 2.5 4.9 1.5 versicolor
6.1 2.8 4.7 1.2 versicolor
6.4 2.9 4.3 1.3 versicolor
6.6 3.0 4.4 1.4 versicolor
6.8 2.8 4.8 1.4 versicolor
6.7 3.0 5.0 1.7 versicolor
6.0 2.9 4.5 1.5 versicolor
5.7 2.6 3.5 1.0 versicolor
5.5 2.4 3.8 1.1 versicolor
5.5 2.4 3.7 1.0 versicolor
5.8 2.7 3.9 1.2 versicolor
6.0 2.7 5.1 1.6 versicolor
5.4 3.0 4.5 1.5 versicolor
6.0 3.4 4.5 1.6 versicolor
6.7 3.1 4.7 1.5 versicolor
6.3 2.3 4.4 1.3 versicolor
5.6 3.0 4.1 1.3 versicolor
5.5 2.5 4.0 1.3 versicolor
5.5 2.6 4.4 1.2 versicolor
6.1 3.0 4.6 1.4 versicolor
5.8 2.6 4.0 1.2 versicolor
5.0 2.3 3.3 1.0 versicolor
5.6 2.7 4.2 1.3 versicolor
5.7 3.0 4.2 1.2 versicolor
5.7 2.9 4.2 1.3 versicolor
6.2 2.9 4.3 1.3 versicolor
5.1 2.5 3.0 1.1 versicolor
5.7 2.8 4.1 1.3 versicolor

Para hacer referencia a la tabla primera (se ha añadido la etiqueta a la cabecera del chunk “tabla01”) podemos escribir: \@ref(tab:tabla01) y quedaría como ver la tabla 3.1.

3.5 Referencias

Ver https://bookdown.org/yihui/bookdown/cross-references.html

Además de hacer referencias a ecuaciones, a figuras y a tablas, pueden hacerse referencias también a secciones usando la misma sintaxis \@ref{etiqueta}, donde “etiqueta” es el identificador de la sección. Por defecto, se generan etiquetas para todas las secciones, por ejemplo, una sesión # Hola Mundo tendrá una etiqueta “hola-mundo”. Se recomienda que manualmente se asigne una etiqueta. Para añadir manualmente una etiqueta para una sección, simplemente se añade al final de la cabecera {#etiqueta}.

Cuando una etiqueta no puede encontrarse aparecerá “??”, además aparecerá un aviso en la consola de R al construir el libro.

También se pueden hacer referencias a secciones de una forma mucho más fácil (varias posibilidades):

  • Escribir el título de la cabecera entre corchetes.

  • [LaTeX][Fórmulas matemáticas en R Markdown con LaTeX] produce: LaTeX

  • [LaTeX][#formulas] produce: [LaTeX][#formulas]

3.6 Resaltar bloques de texto de un modo personalizado

Ver https://bookdown.org/yihui/bookdown/custom-blocks.html

3.7 Citas bibliográficas

Ver https://bookdown.org/yihui/bookdown/citations.html

Se recomienda usar ficheros BibTeX ya que es el mejor método para la salida LaTeX/PDF. Con BibTeX, será posible definir el estilo bibliográfico si se requiere para alguna revista en particular.

Un fichero BibTeX es un fichero de texto plano (con la extensión “.bib”) que consta de entradas bibliográficas como la siguiente:

@Manual{R-base,
  title = {R: A Language and Environment for Statistical
    Computing},
  author = {{R Core Team}},
  organization = {R Foundation for Statistical Computing},
  address = {Vienna, Austria},
  year = {2016},
  url = {https://www.R-project.org/},
}

Una entrada bibliográfica comienza con @type{, donde “type” puede ser: “article”, “book”, “manual”, etc. Luego sigue un identificador (clave) de la entrada bibliográfica, en el ejemplo anterior es: @R-base. Para citar a esta entrda bibliográfica en el texto, usamos: @identificador, o [@identificador] (esta última pone la cita entre paréntesis). Por ejemplo, @R-base produce la salida: R Core Team (2016), y [@R-base] produce la salida: (R Core Team, 2016).

Nota: si estás familiarizado con el paquete natbib de LaTeX, @identificador es básicamente \citet{identificador}, y [@identificador] es equivalente a \citep{identificador}.

Existen diferentes campos en una entrada bibliográfica, tales como: “title”, “author”, “year”, etc. Puedes consultar la siguiente url https://en.wikipedia.org/wiki/BibTeX para ver todas los posibles campos en BibTeX.

Hay una función R en el paquete “knitr”: write_bib() para generar entradas BibTeX automáticamente para paquetes R.

Por ejemplo:

knitr::write_bib(c("knitr","stringr"),file = "",width = 60)
## @Manual{R-knitr,
##   title = {knitr: A General-Purpose Package for Dynamic Report
##     Generation in R},
##   author = {Yihui Xie},
##   year = {2016},
##   note = {R package version 1.14.4},
##   url = {http://yihui.name/knitr/},
## }
## @Manual{R-stringr,
##   title = {stringr: Simple, Consistent Wrappers for Common
##     String Operations},
##   author = {Hadley Wickham},
##   year = {2016},
##   note = {R package version 1.1.0},
##   url = {https://CRAN.R-project.org/package=stringr},
## }

En la cabecera YAML del documento principal R Markdown, se usa el campo “bibliography” para incluir uno o más de un fichero “.bib”. También puede especificarse un estilo biliográfico con el campo “biblio-style” (esto solamente se aplica a la salida PDF), por ejemplo:

---
bibliography: ["principal.bib", "paquetes.bib", "otro.bib"]
biblio-style: "apalike"
link-citations: true
---

Ver estilos bibliográficos en: https://es.sharelatex.com/learn/Bibtex_bibliography_styles.

El campo “link-citations” puede usarse para añadir enlaces internos desde el texto de la citación “autor-año” a la entrada bibliográfica en la salida “HTML”.

Nota: en el siguiente enlace se explica cómo usar Google Scholar para descargar entradas de citas bibliográficas en estilo BibTeX:

http://texblog.org/2014/04/22/using-google-scholar-to-download-bibtex-citations/

3.8 Incluir páginas web, aplicaciones Shiny y Widgets

Ver https://bookdown.org/yihui/bookdown/html-widgets.html y https://bookdown.org/yihui/bookdown/web-pages-and-shiny-apps.html.

Para incluir una página web, puede usarse la función include_url() del paquete “knitr”:

`` `{r out.width='85%',fig.align='center'}
knitr::include_url("http://destio.us.es/calvo")
`` `

produce la siguiente salida:

Para incluir código R que produzca salidas “HTML5-Javascript” debemos tener instalados el paquete R “webshot”, e instalar desde R el programa “PhantomJS”. Puede hacerse del siguiente modo desde la consola de R:

install.packages("webshot")
webshot::install_phantomjs()

Por ejemplo el siguiente código R:

`` `{r out.width='85%',fig.align='center'}
DT::datatable(iris)
`` `

produciría la siguiente salida (captura en PDF):

Referencias Bibliográficas

R Core Team. 2016. R: A language and environment for statistical computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.