R
.Para lo que queremos que aprendáis este curso el Markdown Quick Reference es suficiente. Pero os tenemos que ayudar un poco más con las fórmulas matemáticas, el formato que se puede dar a
las chunks de R
.
La manera de introducir fórmulas matemáticas en R Markdown
es la misma que la que habéis visto que algunos alumnos y profesores utilizan en los foros de Moodle. De hecho esta capacidad la tiene Moodle pues tiene activado su propio lenguaje markdown.
No tiene ningún misterio. Solo tenemos que introducir un código que representa la fórmula de dos formas:
$ código $
$$ código $$
A continuación se muestran algunos ejemplos de código:
Letras griegas y acentos matemáticos
$\mu, \beta, \lambda, \sigma, \Sigma$
$\tilde{S}, \overline{x}, \overline{X}, \hat{p}$
Subíndices, superíndices, comparaciones:
$x_{i}$
$x^{25}$
$x_{i j}$
$x^{2\cdot \alpha}, \tilde{S}^2,\sqrt{x}$
$\mu=\mu_{0}$
$3.141516\approx 3.14$
$\mu\neq \mu_{0}$
$\mu > \mu_{0}, \mu\geq \mu_{0}$
$\mu < \mu_{0}, \mu\leq \mu_{0}$
Fracciones
$\frac{\alpha}{2}$
$z_{1-\frac{\alpha}{2}}, 8^{\frac{1}{3}}$
$\frac{\tilde{S}}{\sqrt{n}}$
Paréntesis, corchetes y llaves:
$(a,b); ]a,b[; \{a,b\}$
\left(\right)
,\left]\right]
… Código:
$\left[\overline{X} -z_{1-\frac{\alpha}{2}} \frac{\sigma}{\sqrt{n}}, \overline{X}+z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}
\right]$
Salida:
\( \left[\overline{X} -z_{1-\frac{\alpha}{2}} \frac{\sigma}{\sqrt{n}}, \overline{X}+z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}} \right] \)
Las matrices se definen empezando con \begin{array}{lcr}
y acabando con \end{array}
. La letras lcr
entre llaves indican
tanto el número de columnas como si se alinean a izquierda (left), derecha (right) o quedan centradas (center). Entre el \begin{array}{lcl}
y el \end{array}
se introducen por filas los valores de la matriz separados por el símbolo &
y el cambio de fila se indica con \\
. En principio las matrices contienen fórmulas. Si queremos introducir texto en una fórmula tenemos que crear una caja de texto con la instrucción \mbox{ pon aquí tu texto}
(mbox
es el la abreviatura de make a box)
$
\left(
\begin{array}{ll}
123 & 4 \\
1 & 234
\end{array}
\right)
$
Salida:
\[ \left( \begin{array}{ll} 123 & 4 \\ 1 & 234 \end{array} \right) \]
$
\left\{
\begin{array}{ll}
123 & 4 \\
1 & 234\mbox{ dato atípico}
\end{array}
\right\}
$
Salida:
\[ \left\{ \begin{array}{ll} 123 & 4 \\ 1 & 234 \mbox{ dato atípico} \end{array} \right\} \]
Si queremos eliminar una llave del lado derecho hay que escribir
\left\{\right.
Notad que el punto de \right.
es el que indica se tiene que omitir la llave (o préntesis o corchete) derecha. Por ejemplo
$$
\left\{
\begin{array}{ll}
123 & 4 \\
1 & 234 \mbox{ dato atípico}
\end{array}
\right.
$$
Salida:
\[ \left\{ \begin{array}{ll} 123 & 4 \\ 1 & 234 \mbox{ dato atípico} \end{array} \right. \]
Ahora unas plantillas ejemplo para escribir los contrastes de hipótesis:
En la misma linea que el texto.
Código:
Contrastaremos la hipótesis nula $H_{0}: \mu=\mu_0$
contra la alternativa bilateral $H_{1}: \mu\neq\mu_0$
.
Con el modo fórmulas entre lineas
Código: Vamos a realizar el siguiente contraste
$$
\left\{
\begin{array}{ll}
H_{0}: & \mu=\mu_0\\
H_{1}: & \mu\neq\mu_0
\end{array}
\right.
$$
Salida:
Vamos a realizar el siguiente contraste
\[ \left\{ \begin{array}{ll} H_{0}: & \mu=\mu_0\\ H_{1}: & \mu\neq\mu_0 \end{array} \right. \]
R
Sabemos que las chunks de R
se indican
`
`
`
{r}
x=1+1
x
`
`
`
La parte entre llaves que empieza por r puede contener diversos parámetros que son opcionales. Por ejemplo
`
`
`
{r etiqueta, echo=TRUE,results=hide}
x=1+1
x
`
`
`
La primera es una etiqueta o nombre que tendrá la chunk, y está formada por una blanco que lo separa de la r seguido por una cadena de caracteres sin blancos, las demás opciones viene separadas por comas.
echo
es lógica indica si se muestra (TRUE
que es valor por defecto) o no (FALSE
) el código fuente de R
. results
podemos asignarle:
Los siguientes ejemplos ilustran el comportamiento de estas opciones
La opción por defecto es la que muestra todo, tanto el código como los resultados.
`
`
`
{r todo_se_ve, echo=TRUE,results='markup'}
x=1+1
x
`
`
`
x = 1 + 1
x
## [1] 2
Para que se vea solamente el código
`
`
`
{r solo_codigo, echo=TRUE,results='hide'}
x=1+1
x
`
`
`
x = 1 + 1
x
Para que se vean solamente los resultados y no el código
`
`
`
{r solo_resultados, echo=FALSE,results='markup'}
x=1+1
x
`
`
`
## [1] 2
Para que no se vea nada, ni el resultado ni el código
`
`
`
{r nada, echo=FALSE,results='hide'}
x=1+1
x
`
`
`
Y como se ve no se ve nada:-)
Las chunks que hemos visto hasta ahora no permiten introducir resultados dentro de una linea de texto. La sintaxis de Rmarkdown para insertar resultados de código en un la linea es `
r código `
.
Por ejemplo la entrada
El resultado de \( 2^{3} \) es `
r 23 `
. O lo que es lo mismo
$2^3$=
`
r 23 `
produce la salida
El resultado el cubo de dos es 8. O lo que es lo mismo \( 2^3 \)=8
Veamos un ejemplo más práctico. Nos dan una muestra y nos piden calcular la media, la varianza y la longitud de la muestra. Primero cargamos los datos y hacemos los cálculos con una chunk
muestra = c(1, 2, 3, NA, 2.8, 3.1, 4.9)
muestra
## [1] 1.0 2.0 3.0 NA 2.8 3.1 4.9
media = mean(muestra, na.rm = TRUE)
media
## [1] 2.8
var = var(muestra, na.rm = TRUE)
var
## [1] 1.684
desv.tipica = sd(muestra, na.rm = TRUE)
desv.tipica
## [1] 1.298
n = length(na.omit(muestra))
n
## [1] 6
El siguiente código de entrada
La muestra es de tamaño $n$=`r n`, su media es $\overline{x}$ =`r media`,
su varianza es $\tilde{s}\^2$=`r var` y su desviación típica es $\tilde{s}$=`r desv.tipica`.
produce la salida
La muestra es de tamaño \( n \)=6, su media es \( \overline{x} \)=2.8, su varianza es \( \tilde{s}^2 \)=1.684 y su desviación típica es \( \tilde{s} \)=1.2977.
Con esto terminamos esta pequeña introducción de algunos pequeños aspectos más avanzados de Rmarkdown. En futuras lecciones y talleres iremos avanzando en otros aspectos. Más adelante, de momento no perdáis el tiempo, daremos referencias a manuales avanazados.