El presente trabajo tiene como objetivo describir la forma de agregar formulas en el texto y en el chunk de manera dinámica.1

1. Como agregar formulas en el chunk con R Markdown.

Para crear un bloque de código, podemos usar el menú Insert de la barra superior de la ventana de ficheros o tambien se puede utilizar las teclas ctrl + alt + i. En ambos casos se genera una sección de color grise que se muestra a continuación.2

knitr::opts_chunk$set(echo = TRUE)
#codigo a ejecutar

La parte entre llaves de la línea que abre el chunk puede contener una etiqueta (un nombre que sirva para identificar el chunk), separada de la r inicial por un espacio en blanco, y diversos parámetros. Estos parámetros se separan de la r (o de la etiqueta, si la hay) por una coma y entre ellos también con comas, y permiten determinar el comportamiento del bloque al compilar el documento pulsando el botón Knit. Los parámetros más útiles son:

  • echo: permite indicar si se ha de mostrar el código fuente de R en el documento final; su valor por defecto es TRUE, y si lo igualáis a FALSE, no lo mostrará, dando sólo el resultado.

  • eval: permite indicar si queremos que se evalúe el código; su valor por defecto es TRUE, y si lo igualáis a FALSE, no lo evaluará.

  • results: permite indicar cómo queremos ver el resultado de la ejecución del código en el documento final. Sus posibles valores son (y fijaos que hay que entrarlos entre comillas, porque son palabras):

    • “hide”, hace que no se muestre el resultado en el documento final.

    • “markup”, que es su valor por defecto, muestra los resultados en el documento final línea a línea, encabezados con dos marcas de comentario ##, y literales, sin que el programa que abre el documento final los interprete como código.

    • “asis”, devuelve los resultados en el documento final línea a línea y el programa con el que se abre el documento final los interpreta como texto y los formatea adecuadamente.

    • “hold”, muestra todos los resultados de golpe al final del bloque de código.

  • message: permite indicar si se han de mostrar en el documento final los mensajes que R produce al ejecutar el código; su valor por defecto es TRUE, y si lo igualáis a FALSE no los muestra.

  • warning: permite indicar si se han de mostrar en el documento final los mensajes de advertencia que a veces producen algunas funciones al ejecutarse; como antes, su valor por defecto es TRUE, y si lo igualáis a FALSE no los muestra.

  • include: permite indicar si queremos “incluir” el chunk en el documento final: su valor por defecto es, naturalmente, TRUE, pero igualado a FALSE no deja ninguna traza del chunk en el documento final (aunque sí que lo ejecuta, así que más adelante podemos usar sus resultados).

  • fig.cap = “…” agrega un título a los resultados gráficos.

pueden consultar la siguiente información de intenet.
1. concepto_basicos
2. Introducción a R
3. Codigo RMarkdown

Rmarkdown si quieres prfundizar en el tema, También te recomendamos el siguiente video.

2. Trabajar con bases de datos,

Para el presente trabajo se ha seleccioando la data de diamantes que esta en la libreria datos, a la cual se le ha filtrado solo los diamantes pequeños, menor o igual a 2.5 quilates.

A continuación se muestra los primeros 10 datos de la base de datos.

knitr::kable(pequenios[1:10, ])
precio quilate corte color claridad profundidad tabla x y z
326 0.23 Ideal E SI2 61.5 55 3.95 3.98 2.43
326 0.21 Premium E SI1 59.8 61 3.89 3.84 2.31
327 0.23 Bueno E VS1 56.9 65 4.05 4.07 2.31
334 0.29 Premium I VS2 62.4 58 4.20 4.23 2.63
335 0.31 Bueno J SI2 63.3 58 4.34 4.35 2.75
336 0.24 Muy bueno J VVS2 62.8 57 3.94 3.96 2.48
336 0.24 Muy bueno I VVS1 62.3 57 3.95 3.98 2.47
337 0.26 Muy bueno H SI1 61.9 55 4.07 4.11 2.53
337 0.22 Regular E VS2 65.1 61 3.87 3.78 2.49
338 0.23 Muy bueno H VS1 59.4 61 4.00 4.05 2.39

La distribución de los diamantes pequeños se muestra a continuación mediante un gráfico:

Gráfico de todas las variables

Para comocer toda la base de datos podremos ejecutar un gráfico para apreciar si existe correlación entre las variables.Por ejemplo se aprecia que le precio y el corte tienen una tendencia creciente.

Se aprecia que la profundidad del diamente no influye en el precio, mientras que los quilates si lo influye.

3. Estimamos un modelo de regresion lineal,

Estimanos un modelo lineal del tipo:

\[Y_{i}=(\beta_{0}+\beta_{1}X_{1i}+\beta_{2}X_{2i}+\cdots+\beta_{n}X_{ni})+e_{i}\]

Para la estimación del modelo se utiliza la base de diamante filtrada solo para los diamentes menores e iguales de 2.5 quilates.

Se ejecuta el siguiente código para estimar el modelo de regresión lineal.

lm(precio~quilate+profundidad, data = pequenios)
## 
## Call:
## lm(formula = precio ~ quilate + profundidad, data = pequenios)
## 
## Coefficients:
## (Intercept)      quilate  profundidad  
##     3705.54      7869.29       -97.85

A mayor quilate mayor precio y a mayor profundidad menor es el precio. Las variables son estadisticamente significativas.

podemos mejorar la salida del resultado del modelo con el siguiente código

kable(coefficients(summary(lm(precio~quilate+profundidad, data = pequenios))))
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3705.54089 282.001009 13.14017 0
quilate 7869.29251 14.071551 559.23418 0
profundidad -97.84707 4.566445 -21.42740 0

Para terminar esta sección, cabe indicar que R Markdown tiene varias formas de adjuntar gráficos, otra forma es desde la libreria knitr

knitr::include_graphics('D:/omartinez/Agenda/1. ok/curso Introduccion a RMarkdown, Creando reportes con R y Python/logo de R.jpg')
## Warning in knitr::include_graphics("D:/omartinez/Agenda/1. ok/curso Introduccion
## a RMarkdown, Creando reportes con R y Python/logo de R.jpg"): It is highly
## recommended to use relative paths for images. You had absolute paths: "D:/
## omartinez/Agenda/1. ok/curso Introduccion a RMarkdown, Creando reportes con R y
## Python/logo de R.jpg"
Logo de R

Logo de R

4. Como agregar formulas en el texto con R Markdown.

Para crear formulas en el texto, la base de datos debe ser previamente trabajada en el chunk y posteriormente se agrega en la linea de texto,el código precedido de la letra r, entre el signo `, el cual se genera seleccionando el teclado que esta a la izquierda del número 1.

A continuacion se presenta un ejemplo, con la data de diamantes que esta en la libreria datos, y previamente se ha filtrado los diamantes pequeños (menor o igual a 2.5 de quilates). No se visualiza el código.

Tenemos datos respecto de 53,940 diamantes. Únicamente 126 son mayores a 2,5 quilates. Esto representa el 0.23% del total de diamantes. La data tiene las siguientes variables precio, quilate, corte, color, claridad, profundidad, tabla, x, y, z

El precio mínimo de los diamantes pequeños es de 326 y el precio máximo es de 18,823, el precio promedio de los diamentes pequeños es de 3,905.92.

se ha realizado un modelo de regresión lineal para explicar el precio de los diamantes pequeños. Por cada incremento de una unidad en el quilate, el precio se incrementa en 7,869.29 unidaddes monetarias y por cada unidad de incremento en la profundidad del diamente el precio disminuye en -97.85 unidades monetarias.


  1. Forma parte del curso “Introduccion a RMarkdown. Creando reportes R y Python” impartida por Renzo Caceres Rossi↩︎

  2. A la zona gris se le conoce como Chunk↩︎