¿Qué es Markdown?

Markdown es un lenguaje de marcado ligero parecido al que se emplea en muchas wikis y basado originalmente en convenciones existentes en el marcado de los los correos electronicos. Emplea texto plano, procurando que sea legible pero consiguiendo que se convierta en XHTML correctamente formateado.

Todas las publicaciones de R Users Group - Ecuador están elaboradas empleando markdown, sin utilizar ningún tipo de editor visual, lo que facilita el crear documentos XHTML limpios y fácilmente editables.

Aunque no es muy conocido, empieza a ser muy popular y utilizado entre los programadores.

Sintaxis Markdown

Cabeceras (Títulos y subtítulos)

Las cabeceras HTML se producen colocando un número determinado de signos # antes del texto correspondiente al nivel de encabezamiento deseado (HTML ofrece hasta seis niveles). Los encabezamientos posibles se pueden ver en la siguiente tabla:

# Esto es un H1
## Esto es un H2
### Esto es un H3
#### Esto es un H4
##### Esto es un H5
###### Esto es un H6
    

Esto es un H1

Esto es un H2

Esto es un H3

Esto es un H4

Esto es un H5
Esto es un H6

Para las cabeceras de los dos primeros niveles también existe otra manera de hacer lo mismo:

Esto es un H1
=============
Esto es un H2
-------------

Esto es un H1

Esto es un H2

Texto plano y párrafos

Texto cualquiera, si al finalizar la linea colocamos dos espacios en blanco es un nuevo párrafo.

Texto normal.
Texto con 2 espacios al final.  
Texto normal.

Texto normal. Texto con 2 espacios al final.
Texto normal.

Viñetas y listas numeradas

- Elemento
- Elemento
- Elemento

1. Elemento
2. Elemento
3. Elemento
  • Elemento
  • Elemento
  • Elemento
  1. Elemento
  2. Elemento
  3. Elemento

En lugar de - y 1. podemos utilizar * y 1) respectivamente:

* Elemento
* Elemento
    + Subelemento
        - Desagregación
* Elemento

1) Elemento
2) Elemento
3) Elemento
  • Elemento
  • Elemento
    • Subelemento
      • Desagregación
  • Elemento
  1. Elemento
  2. Elemento
  3. Elemento

Formato

Para poner el texto en cursiva utilizamos * o _ antes y después del texto.
*cursiva* o _curvisa_

*curvisa o cursiva

Para poner el texto en negrita utilizamos ** o __ antes y después del texto.
**negrita** o __negrita__

negrita o negrita

Color

<span style="color:blue">Texto *rojo cursiva* normal</span>

Texto rojo cursiva normal

Superíndices

superindice^3^ 

superindice3

Tachado

~~tachado~~

tachado

Enlaces

<http://www.rusersgroup.com>

http://www.rusersgroup.com

[R Users Group - Ecuador](www.rusersgroup.com)

R Users Group - Ecuador

[Facebook - R Users Group - Ecuador ][1]

[1]: https://www.facebook.com/Rusersgroup        "Únete a la comunidad de usuarios de R en Ecuador"

Facebook - R Users Group - Ecuador

[![RUsers](http://rusersgroup.com/img/final5x5.png)](https://www.facebook.com/Rusersgroup)

RUsers

<p>También podemos incluir código HTML directamente, como esto: <a href="https://www.facebook.com/Rusersgroup">Facebook R Users Group - Ecuador</a>.</p>

También podemos incluir código HTML directamente, como esto: Facebook R Users Group - Ecuador.

Al poder incluir HTML podemos realizar todo lo antes mencionado de esta forma, pero no es el objetivo de esta publicación, sino mas bien mostrar las potencialidades de markdown.

Símbolos

En este punto es importante la barra invertida .

Escribiéndola antes de cualquiera de los elementos a continuación, los mismos no tendrán efecto a la hora de convertirse en negritas, cursivas, links, etc.

\ barra invertida
` acento invertido
* asterisco
_ guión bajo
{} llaves
[] corchetes
() paréntesis
# numeral
+ símbolo de suma
- guión
. punto
! exclamación

Ejemplos:

\* \_ \\

* _ \

Si escribimos directamente obtenemos: *_

Líneas

---    

***

Notas a pie de página

Cada nota de pie de página se compone de dos elementos: un marcador al lado del texto que se convierte en un superíndice y de una definición que se puede colocar en una lista de notas al pie al final de documento. Ejemplo:

Esto es un texto con nota al pie [^1]
[^1]: Esto es una nota al pie de página.

Esto es un texto con nota al pie 1

Cada marcador de nota debe tener un nombre distinto. Ese nombre se utiliza para vincular la nota a la que hace referencia a las definiciones de la nota, pero no tiene ningún efecto sobre la numeración de las notas al pie. Los nombres pueden contener cualquier carácter válido que sirva para la una Identificación de un atributo HTML (es decir, que cumpla con la expresión regular [A-Za-z][-A-Za-z0-9_:.]*), no tienen porque ser necesariamente números. Ejemplo:

Esto es un texto con nota al pie [^nota1] y esta es otra nota [^nota2]
[^nota1]: Esto es una nota al pie de página.
[^nota2]: Esto es la segunda nota al pie.

Esto es un texto con nota al pie 2 y esta es otra nota 3

Identificadores de cabeceras y títulos

Los identificadores de cabecera nos permiten establecer un identificador para luego poder enlazarlas en cualquier otro lugar del texto. Generalemten utilizado para crear índices.

#### Título 1 {#tit1}
[Enlace a titulo1](#tit1)

Título 1

Enlace a titulo1

Código

Se pueden crear bloques de código para albergar extractos de código fuente de un lenguaje de programación o para reproducir literalmente cualquier tipo de texto sin que sea interpretado por markdown, para esto cada línea debe iniciar por al menos 4 espacios o 2 tabulados.

Tablas

Para crear tablas es debemos indicar cuales son los elementos de la cabecera y separar los campos con el símbolo |.

Cabecera A | Cabecera B
-- | --
Campo A1 | Campo B1
Campo A2 | Campo B2
Cabecera A Cabecera B
Campo A1 Campo B1
Campo A2 Campo B2

Por estética se pueden alinear las columnas e incluso comenzar y finalizar las filas con el símbolo |, pero no es en absoluto necesario.

| Cabecera A | Cabecera B |
| ---------- | ---------- |
| Campo A1   | Campo B1   |
| Campo A2   | Campo B2   |
Cabecera A Cabecera B
Campo A1 Campo B1
Campo A2 Campo B2

Se puede especificar la alineación de cada columna mediante la adición de dos puntos a las líneas de separación. Dos puntos a la izquierda de la línea de separación hará que la columna esté alineada a la izquierda, dos puntos a la derecha de la línea hará que la columna esté alineada a la derecha, dos puntos en ambos lados significa que la columna se alinea al centro.

| Items    | Cantidad | Precio   |
| :------- | :------: | -------: |
| Item 1   | 15       | $9,050   |
| Item 2   | 3250     | $239,99  |
Items Cantidad Precio
Item 1 15 $9,050
Item 2 3250 $239,99

Mas adelante veremos integración con otros lenguajes de programación en donde la creación de tablas se vuelve mucho mas sencillo.

Ecuaciones

En la misma linea: $A = \pi*r^{2}$ 

En la misma linea: \(A = \pi*r^{2}\)

La *función Gamma* satisface $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ a través de la integral de Euler

$$
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
$$

La función Gamma satisface \(\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N\) a través de la integral de Euler

\[ \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. \]
Ejemplos:

$$X_i$$

\[X_i\]

$$X_{i}$$

\[X_{i}\]

$$X_{i,j}$$

\[X_{i,j}\]

$$X_i,j$$

\[X_i,j\]

$$X^2_{i,j}$$

\[X^2_{i,j}\]

$$\sqrt{b^2 - 4ac}$$

\[\sqrt{b^2 - 4ac}\]

$$\frac{4z^3}{16}$$

\[\frac{4z^3}{16}\]

$$\sum_{i=1}^{n} X^3_i$$

\[\sum_{i=1}^{n} X^3_i\]

$$\sum_{i=1}^{n}\left( \frac{X_i}{Y_i} \right)$$

\[\sum_{i=1}^{n}\left( \frac{X_i}{Y_i} \right)\]

$$\alpha, \beta,  \gamma, \Gamma$$

\[\alpha, \beta, \gamma, \Gamma\]

$$a \pm b$$

\[a \pm b\]

$$x \ge 15$$

\[x \ge 15\]

$$a_i \ge 0~~~\forall i$$

\[a_i \ge 0~~~\forall i\]

$$\int_0^{2\pi} \sin x~dx$$

\[\int_0^{2\pi} \sin x~dx\]

$$\begin{array}
{rrr}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{array}
$$

\[\begin{array} {rrr} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array} \]

$$\mathbf{X} = \left[\begin{array}
{rrr}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{array}\right]
$$

\[\mathbf{X} = \left[\begin{array} {rrr} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right] \]

Citas

Para crear bloques de cita, se emplea el carácter mayor que > antes del bloque de texto.

> Esto es parte de un bloque de cita.
> Esto es parte del mismo bloque de cita.
>
> > Esto es otro bloque de cita anidado.
> > Esto es parte del bloque anidado.
>
> Esto es parte del bloque de cita de primer nivel.
Esto es una línea normal

Esto es parte de un bloque de cita. Esto es parte del mismo bloque de cita.

Esto es otro bloque de cita anidado. Esto es parte del bloque anidado.

Esto es parte del bloque de cita de primer nivel. Esto es una línea normal

Diagramas UML

![Diagrama](http://g.gravizo.com/g?
@startuml;
Object <|-- ArrayList;
Object : equals%48%49;
ArrayList : Object[] elementData;
ArrayList : size%48%49;
@enduml
)
Diagrama

Diagrama

Imágenes

<center>![R Users Group - Ecuador](http://rusersgroup.com/img/final5x5.png)</center>
R Users Group - Ecuador
![R install](https://raw.githubusercontent.com/Rgrupoec/Rgrupoec.github.io/master/img/publicaciones/2017-07-23-install_r.gif)
R install

R install

Videos

<center><iframe width="756" height="427" src="https://www.youtube.com/embed/wxKZn4Kt2WU?rel=0&showinfo=0&controls=0" frameborder="0" allowfullscreen></iframe></center>

Back to Top

Integración con R

Markdown ofrece integración con varios lenguajes de programación, dentro de estos R.

La manera más sencilla de escribir un informe rápido, mezclando un poco de R, es usar R Markdown, una variante de Markdown desarrollada por la gente de Rstudio.

Primero debe leer la página sobre Markdown.

R Markdown es una variante de Markdown basada en pandoc que tiene incrustados trozos de código R, que se utiliza con knitr para facilitar la creación de informes basados en web reproducibles.

install.packages("rmarkdown")
library(rmarkdown)

La sintaxis de Markdown tiene algunas mejoras;

  • Permite generar documentos HTML, PDF y MS Word, así como presentaciones Beamer, ioslides y Slidy.
  • Permite incluir ecuaciones de LaTeX sin procesar dentro de la reducción para la personalización avanzada de la salida de PDF.
  • Incluyendo soporte ampliado para tablas, listas de definiciones y bibliografías.
  • Permite incluir ganchos para personalizar la salida HTML y PDF (incluye CSS, encabezados y pies de página).
  • Permite definir fácilmente nuevos formatos para los requisitos de publicación personalizada.
  • Permite crear documentos interactivos de R Markdown utilizando Shiny.

Trozos de código Chunks

La clave para integración con R son los trozos de código, que se incluyen en cualquier parte del código markdown, dentro del trozo se puede incluir cualquier función o paquete de R:

`` `{r}
    X <- rnorm (100)
    Y <- 2 * X + rnorm (100)
    Y
`` `
X <- rnorm (100)
Y <- 2 * X + rnorm (100)
Y
##   [1] -1.956443950  4.531350998  1.117407659 -2.315333788 -6.917526210
##   [6]  3.318032048 -2.243153720  0.798179909 -1.996737801 -0.535673171
##  [11] -0.994654199  2.348608929  1.654710656 -0.635112335  1.261716680
##  [16]  1.888858410 -0.090495240 -1.538166144 -0.240646812 -0.012316227
##  [21]  3.955039015  3.113369751  1.005675010  3.715741289  0.338298994
##  [26]  0.172087261 -2.183585315  2.503434000 -2.610854938 -0.004026699
##  [31] -1.413458626 -4.277255341 -0.434527899  0.444968963 -1.874922980
##  [36]  4.425434810 -3.196856415 -4.279531803  4.399322303  1.624840421
##  [41] -0.660357267 -1.723909309 -0.858769065 -0.053424460 -0.387668599
##  [46] -0.827404687  2.703113249 -1.447456101 -0.793670997  0.782778979
##  [51]  5.290182932  0.289567886 -2.436677342  2.171271025  0.132920702
##  [56] -3.180236433 -0.526301582 -1.888898996  2.645846902 -2.082723485
##  [61]  2.221426127 -0.780454536  1.756617802 -4.762607798 -2.725295294
##  [66] -1.195709866 -3.956744369 -0.833171503 -0.376523833 -2.365837343
##  [71] -0.737306630 -0.272564191  2.411210504  1.478178197  1.652837287
##  [76]  0.721962884  0.010023477 -3.895120280  2.669394147 -2.187208267
##  [81] -0.512912994 -2.300812909 -0.280050279 -0.192823653 -1.337231484
##  [86]  0.763848688  5.436497023  2.656540372  0.824939986 -1.318730477
##  [91] -1.453972387 -2.716225554  2.826173053 -2.269183200  4.548179254
##  [96]  1.184796740  1.345890177  4.318497495 -2.581941264 -0.244854352

DT

DT::datatable(head(mtcars))

Plots

par(mfrow=c(1,2))
plot(pressure)
boxplot(pressure)

library(ggplot2)
library(ggExtra)
data(mpg, package="ggplot2")

theme_set(theme_bw())
mpg_select <- mpg[mpg$hwy >= 35 & mpg$cty > 27, ]
g <- ggplot(mpg, aes(cty, hwy)) + 
  geom_count() + 
  geom_smooth(method="lm", se=F)
g

library(ggdendro)
hc <- hclust(dist(USArrests), "ave")  # hierarchical clustering
ggdendrogram(hc, rotate = TRUE, size = 2)

Back to Top


  1. Esto es una nota al pie de página.

  2. Esto es una nota al pie de página.

  3. Esto es la segunda nota al pie.