La sintaxis Rmarkdown deriva del lenguaje de marcas markdown, creado por John Gruber en 2004 con el objetivo de poder generar páginas web de manera sencilla. Rstudio ha adaptado este lenguaje con la denominación Rmarkdown con el objetivo de integrarlo con R y permitir la generación de documentos científicos. Para ello Rstudio emplea pandoc (John McFarlane, 2006), es un conversor de documentos libre y de código abierto, mayormente usado como una herramienta de escritura (especialmente por académicos), y es una base para la publicación de flujos de trabajo, capaz de generar documentos word, pdf o html a partir de un documento de texto con marcas. El paquete de R knitr (Yihui Xie, 2007) es el encargado de hacer la “magia” necesaria para que markdown, R y pandoc interactúen y generen el documento final en el formato deseado por el usuario.
En pocas palabras, R Markdown está sobre los hombros de Knitr y Pandoc . El primero ejecuta el código informático incrustado en Markdown y convierte R Markdown en Markdown. Este último representa Markdown en el formato de salida que desee (como PDF, HTML, Word, etc.).
El paquete rmarkdown (Allaire, Xie, McPherson, et al. 2021) se creó por primera vez a principios de 2014. Durante los últimos cuatro años, ha evolucionado constantemente hasta convertirse en un ecosistema relativamente completo para la creación de documentos, por lo que es un buen momento para que proporcione una guía definitiva para este ecosistema ahora. En este punto, hay una gran cantidad de tareas que puede hacer con R Markdown:
Compilar un solo documento de R Markdown en un informe en diferentes formatos, como PDF, HTML o Word.
Crear blocs de notas en los que pueda ejecutar directamente fragmentos de código de forma interactiva.
Realizar diapositivas para presentaciones (HTML5, LaTeX Beamer o PowerPoint).
Producir paneles con diseños atractivos, interactivos y flexibles.
Crear aplicaciones interactivas basadas en Shiny.
Escribir artículos de revistas.
Autor de libros de varios capítulos.
Generar sitios web y blogs.
Los documentos de R Markdown suelen ser portátiles en el sentido de que se pueden compilar en varios tipos de formatos de salida. Nuevamente, esto se debe principalmente a la sintaxis simplificada del lenguaje de creación, Markdown. Cuanto más simples sean los elementos de su documento, es más probable que el documento se pueda convertir a diferentes formatos. De manera similar, si adapta en gran medida R Markdown a un formato de salida específico (por ejemplo, LaTeX), es probable que pierda la portabilidad, porque no todas las funciones en un formato funcionan en otro formato.
Suponemos que ya ha instalado R (https://www.r-project.org) y el IDE de RStudio (https://www.rstudio.com). RStudio no es necesario, pero se recomienda, porque facilita que un usuario medio trabaje con R Markdown. Si no tiene RStudio IDE instalado, tendrá que instalar Pandoc (http://pandoc.org); de lo contrario, no es necesario instalar Pandoc por separado porque RStudio lo ha incluido. A continuación, puede instalar el paquete rmarkdown en R:
install.packages("rmarkdown")
Si desea generar una salida PDF, deberá instalar LaTeX. Para los usuarios de R Markdown que no han instalado LaTeX antes, le recomendamos que instale TinyTeX (https://yihui.name/tinytex/):
install.packages("tinytex")
tinytex::install_tinytex()
Con el paquete rmarkdown , RStudio, Pandoc y LaTeX, debería poder compilar la mayoría de los documentos de R Markdown.
Dentro de R Studio, haz clic en Archivo; Nuevo archivo; R Markdown y obtendrás un cuadro de diálogo parecido a éste:
R Markdown proporciona un marco de creación para la ciencia de datos. Puede usar un solo archivo R Markdown para ambos
Guardar y ejecutar código, y
Genere informes de alta calidad que se puedan compartir con una audiencia.
El fragmento inicial de texto contiene instrucciones para R: le das un título, autor y fecha, y díle que va a querer producir una salida html (en otras palabras, una página web). con extension
---
title: "R Markdown"
author: "Juan José Vindell"
date: "05 de Octubre de 2021"
output: html_document
---
Si quisieramos agregar el índice del contenido a desarrollar utilizariamos:
---
title: "RMARKDOWN"
author: "Juan José Vindell"
date: "05 de Octubre de 2021"
output:
html_document:
toc: true
toc_depth: 2
toc_float: true
---
Si empezamos a ejecutar nuestra primer prueba en html obtendremos lo siguiente:
---
title: "RMARKDOWN"
author: "Juan José Vindell"
date: "10/8/2021"
output: html_document
---
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
Y su resultado final sería:
Es un servicio gratuito que facilita la publicación de documentos en la web desde R. RPubs es una forma rápida y sencilla de difundir análisis de datos y código R y colaborar ad-hoc con compañeros.
RStudio le permite aprovechar el poder de R Markdown para crear documentos que entrelazan su escritura y la salida de su código R. ¡Y ahora, con RPubs, puede publicar esos documentos en la web con solo hacer clic en un botón!
Prerrequisitos
Necesitará R , RStudio (v0.96.230 o posterior) y el paquete knitr (v0.5 o posterior).
Instrucciones
En RStudio, cree un nuevo documento de R Markdown seleccionando Archivo | Nuevo | R Markdown .
Haga clic en el botón knit HTML en la barra de herramientas del documento para obtener una vista previa de su documento.
En la ventana de vista previa, haga clic en el botón Publicar .
Hay dos tipos de formatos de salida en el paquete rmarkdown : documentos y presentaciones. Todos los formatos disponibles se enumeran a continuación:
beamer_presentationcontext_documentgithub_documenthtml_documentioslides_presentationlatex_documentmd_documentodt_documentpdf_documentpowerpoint_presentationrtf_documentslidy_presentationword_document{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
Para título ocuparemos # título.
Para subtítulo ## subtítulo.
Para sub subtítulo ### sub subtítulo.
Para justificar un documento <div style="text-align: justify">.
El texto en línea aparecerá en cursiva si está rodeado por guiones bajos o asteriscos, por ejemplo, _text_ o *text*.
El texto en negrita se produce con un par de asteriscos dobles (**text**).
Las notas al pie se colocan dentro de los corchetes después de un símbolo de intercalación ^[], por ejemplo, ^[This is a footnote.].
Las citas en bloque se escriben después >, por ejemplo,
> "La estadística es el único tribunal de apelación para juzgar el nuevo conocimiento".
>
> --- P. C. Mahalonibis
“La estadística es el único tribunal de apelación para juzgar el nuevo conocimiento”.
— Mahalanobis
Para marcar texto como inline code, utilizar un par de acentos abiertos, por ejemplo, code.
Los hipervínculos se crean utilizando la sintaxis [text](link), por ejemplo, [sitio oficial de R Markdown](https://rmarkdown.rstudio.com/index.html).
La sintaxis de las imágenes es similar: sólo tiene que añadir un signo de exclamación, por ejemplo, .
|**Fuente de variación**|**Suma de cuadrados**|**Grados de libertad**|**Media de cuadrados**|$F_0$|
|:-------:|:------:|:--------:|:--------:|:---------:|
| Entre tratamientos | $SS_{Tratamientos}$ | $a-1$ | $MS_{Tratamientos}$ | $F_0=\frac{MS_{Tratamientos}}{MS_{E}}$ |
| Error(dentro de tratamientos) | $SS_{E}$ | $N-a$ | $MS_{E}$ |
|Total | $SS_{T}$ | $N-1$ |
| Fuente de variación | Suma de cuadrados | Grados de libertad | Media de cuadrados | \(F_0\) |
|---|---|---|---|---|
| Entre tratamientos | \(SS_{Tratamientos}\) | \(a-1\) | \(MS_{Tratamientos}\) | \(F_0=\frac{MS_{Tratamientos}}{MS_{E}}\) |
| Error(dentro de tratamientos) | \(SS_{E}\) | \(N-a\) | \(MS_{E}\) | |
| Total | \(SS_{T}\) | \(N-1\) |
DT::datatable(head(mtcars))
Pueden ocupar este enlace para facilitar fórmulas.
$$log\left ( \frac{p_{i}}{1-p_{i}} \right )= \beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+ \cdots + \beta_{k}x_{k}$$
\[log\left ( \frac{p_{i}}{1-p_{i}} \right )= \beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+ \cdots + \beta_{k}x_{k}\]
Pueden ser matrices
$$\Theta = \begin{pmatrix}\alpha & \beta\\
\gamma & \delta
\end{pmatrix}$$
\[\Theta = \begin{pmatrix}\alpha & \beta\\ \gamma & \delta \end{pmatrix}\]
Listas ordenadas
1. Item 1
2. Item 2
3. Item 3
+ Item 3a
+ Item 3b
Listas desordenadas
* Item 1
* Item 2
+ Item 2a
+ Item 2b
p <- seq(0,1,l=1000)
logitp <- log(p/(1-p))
plot(logitp,p,t='l',xlab="log(p/1-p)")
abline(h=c(0,0.5,1),v=0,col="grey")
points(0,0.5,pch=19,col="red")
library(tidyverse)
library(highcharter)
## Warning: package 'highcharter' was built under R version 4.0.5
data(diamonds, mpg, package = "ggplot2")
hchart(mpg, "scatter", hcaes(x = displ, y = hwy, group = class)) %>%
hc_title(text = "Dispersión diamonds") %>%
hc_add_theme(hc_theme_economist())
mpgman2 <- mpg %>%
count(class, year) %>%
glimpse()
## Rows: 14
## Columns: 3
## $ class <chr> "2seater", "2seater", "compact", "compact", "midsize", "midsize"~
## $ year <int> 1999, 2008, 1999, 2008, 1999, 2008, 1999, 2008, 1999, 2008, 1999~
## $ n <int> 2, 3, 25, 22, 20, 21, 6, 5, 16, 17, 19, 16, 29, 33
hchart(mpgman2, "column", hcaes(x = class, y = n, group = year))%>% hc_add_theme(hc_theme_darkunica())
Pandoc ofrece dos métodos para gestionar citas y referencias bibliográficas en un documento.
El método predeterminado es utilizar un programa de ayuda de Pandoc llamado pandoc-citeproc, que sigue las especificaciones del lenguaje de estilo de citas (CSL) y obtiene instrucciones de formato específicas de uno de la gran cantidad de archivos de estilo CSL disponibles .
Los usuarios también pueden optar por utilizar natbib (basado en bibtex) o biblatex como un “paquete de citas”. En este caso, los archivos de datos bibliográficos deben estar en formato bibtex o biblatex.
---
title: "Untitled"
author: "Juan José Vindell"
date: "12/8/2021"
output:
html_document:
bibliography: biblio.bib
csl: apa.csl
---
Lo que tenemos que tener presente es:
.bib.Por ejemplo: coronavirus
Nos dan al final del documento la extensión en formato bibtex.
@article {owidcoronavirus,
autor = {Hannah Ritchie, Esteban Ortiz-Ospina, Diana Beltekian, Edouard Mathieu, Joe Hasell, Bobbie Macdonald, Charlie Giattino, Cameron Appel, Lucas Rodés-Guirao y Max Roser},
title = {Pandemia de coronavirus (COVID-19)},
journal = {Our World in Data},
año = {2020},
note = {https://ourworldindata.org/coronavirus}
}
csl.Por ejemplo: APA, luego se le da en raw, después click derecho guardar como, y lo almacenamos en nuestra carpeta de trabajo.
Ahora bien hacemos la referencia.
[@owidcoronavirus]
La pandemia comenzó en Wugan, China[@owidcoronavirus]
Nota En este sentido no nos aparecerá la bibliografía porque se tiene que ejecutar en un archivo diferente a esta clase.
Hasta ahorita, solo hemos hablado de introducir texto en Markdown, donde van los encabezados, estilo de texto y otras cosas afines, también se mencionó como insertar ecuaciones.
Los trozos de código R o chunks permiten hacer análisis estadísticos y mostrar los resultados en el documento final.
Para que knitr distinga las instrucciones de R del texto normal tenemos que poner las instrucciones de R dentro de unas marcas o identificadores: ```{r} al principio y ``` al final.
Los chunks pueden tienen diversas opciones que permiten una mayor flexibilidad en como se muestra el código y los resultados en el documento final. Las opciones más usadas son:
Si ponemos FALSE no muestra el código, en cambio si tiene TRUE si lo muestrará.
Si ponemos FALSE muestra el código más no se ejecuta , en cambio si tiene TRUE si lo muestra y ejecuta.
Si ponemos FALSE muestra solo el resultado no código, en cambio si tiene TRUE no muestra resultado si código.
Si ponemos FALSE ocultamos mensaje, en cambio si tiene TRUE muestra mensaje.
Si ponemos FALSE ocultamos advertencia, en cambio si tiene TRUE muestra advertencia.
Hasta el momento hemos estado creando Markdown, pero hay otra opción que aparece más arriba de R Markdown, que es R Notebook
Ambos tienen lo mismo ya que tienen encabezados similares, chunks iguales. Entonces la diferencia estará en el output:html_notebook.
---
title: "R Notebook"
author:"Juan José"
date:"17 agosto 2021"
output: html_notebook
---
5+1
## [1] 6
Principalmente el notebook nos permitirá compartir todo el código que nos llevó a desarrollar un tema en específico, tal y como aparece en la siguiente salida.
Pueden ver un ejemplo completo de como se publica en Rpubs utilizando todas las herramientas antes mencionadas Regresión Logística en Salud Pública