Análisis con scripting avanzado

Inicio  Anterior  Siguiente

El tipo de análisis de RMarkdown, como el que viste en el apartado anterior, combina aspectos de publicación, estéticos, con análisis de datos. Expliquemos un poco qué es un archivo RMarkdown. Un archivo RMarkdown es un archivo que combinará código R con texto formateado. Aunque puedes utilizar las etiquetas HTML típicas, te recomendamos usar la sintaxis básica de Markdown, para obtener un mejor rendimiento. No obstante, vamos a comenzar por lo más sencillo pues "andando se hace camino ..."

Vamos a crear un nuevo análisis en el estudio de ejemplo (Proyecto inicial de ejemplo), donde hagamos una salida muy sencilla. En nuestro análisis, seleccionamos todos los campos que vamos a necesitar, no los ponemos todos, para que se el proceso sea más eficiente. Seleccionamos la fuente de datos que hay y los campos P15, P16, SEXO, EDAD y ZONA.

Puedes observar que en la pestaña de Opciones, ahora tienes un input diferente. Se ha creado un marco de datos (dataframe) de R donde las variables fíjate como han cambiado su nombre y ahora se llaman data$nombre. Sí, ya sabemos que hay un comando de R que nos permitiría que conservaran su nombre [attach(data)], pero estamos en lo básico. Si conoces su uso, utilízalo.

El INPUT nos indica que ...

Data source:

data=EMS2018NULL

Fields:

data$P15

data$P16

data$SEXO

data$EDAD

data$ZONA

Por tanto, si queremos hacer algo con el campo P15, ahora se llama data$P15.

En el espacio del editor de R, escribimos lo siguiente:

Ejemplo de código R Markdown

**Este es mi primer ejemplo de RMarkdown en SegmentaNet**

 

Puedes observar que el texto está en negrita y eso es porque he utilizado los dos asteriscos para iniciar y acabar la frase.

 

Si quiero utilizar _cursiva_ utilizaré el guión bajo para ello.

 

> A continuación (como ves con formato de cita destacada), calcularé los estadísticos básicos del campo P15, y lo imprimiré en el documento; sin embargo, también calculo dos tablas de frecuencias (paquete expss siempre precargado) pero no las imprimo ahora, lo haré más adelante.

 

Los estadísticos básicos del campo P15 es ...

``` {r calculo01}

summary(data$P15)

tabla01<-fre(data$SEXO)

tabla02<-fre(data$ZONA)

```

Como puedes ver, he terminado los cálculos, pero no se han impreso las tablas. Ahora voy a imprimir la tabla primera ...

 

`r tabla01`

 

Y ahora imprimo la tabla segunda ...

 

`r tabla02`

 

Es así de **_sencillo_**. ¿Verdad?

 

Pues bien, este código de R, en SegmentaNet, daría como resultado...

Vista preliminar

clip0005

¿Entiendes ahora la potencia?, hemos combinado texto, con tablas, y podemos también añadir gráficos. R es un potente software que permite hacer todos los gráficos que se te puedan ocurrir. Hay varios paquetes muy conocidos además del básico de R, como son lattice y ggplot. Probablemente ggplot sea el más conocido de todos, aunque como en todo hay quien preferirá lattice. Nosotros no nos decantamos por ninguno. También debemos mencionar el paquete highcharter, que es el referente a los gráficos de SegmentaNet. Debemos agradecer a Joshua Kunst que haya creado este maravilloso paquete combinando la potencia de R con la funcionalidad del software de Highchart. Joshua ha desarrollado este paquete para poder utilizar sus maravillosos gráficos interactivos con R. este paquete de R es mantenido por Joshua Kunst, pero ciertamente no hay tanta ayuda y tutoriales como en los otros dos paquetes de gráficos. Recomendamos la lectura del artículo de Danton Noriega al respecto de como transformar los gráficos de HighChart en JS a gráficos de R. Sus instrucciones nos permiten a partir de la galería de highchart, crear nuestros gráficos en R.

Mira este código R Markdown y su resultado ...

Ejemplo de código R Markdown

```{r }

library("highcharter")

chart01<-hchart(data, "scatter", hcaes(x = P15, y = P16, group = factor(EDAD)))

chart02<-hchart(data, "column", hcaes(x = factor(SEXO), y = EDAD, group = factor(STATUS)))

chart03<-hchart(data$P16)

chart04<-hchart(factor(data$ZONA), type = "column")

```

![imagen](http://download.tesigandia.com/imagenes/bannertesi.jpg)<br>

 

<table><tr><td width="500px">`r chart01`</td><td width="500px">`r chart02`</td></tr>

<tr><td>Explicamos el gráfico aquí<br><br></td><td>Explicamos el gráfico aquí<br><br></td></tr>

<tr><td>`r chart03`</td><td>`r chart04`</td></tr>

<tr><td>Explicamos el gráfico aquí<br><br></td><td>Explicamos el gráfico aquí<br><br></td></tr></table>

Resultado

clip0008

Podemos pensar que esto es un cuadro de control, pero no es el resultado directo de la salida del análisis de SegmentaNet. Esto te puede dar una idea de las posibilidades.

Por ejemplo, otro sencillo ejemplo, que podríamos querer obtener de unos datos de los que debemos hacer un reporte semanal. Imaginemos que en nuestro estudio de ejemplo nos piden un tabla con las cuotas teóricas de un estudio anual y comparada con una tabla con las cuotas reales del estudio. Observa, la tabla de las cuotas del estudio actualmente la podrías hacer sin mucha difucltad con SegmentaNet, pero la tabla de valores teóricos, no tienes los datos en tu fuente de datos. Bueno, pues R nos permite crearla. Los pasos serán los siguientes:

Creamos el análisis de tipo R Markdown
En el análisis, seleccionamos la fuente de datos indicada, la de ejemplo
Seleccionamos los campos SEXO y EDAD
Escribimos el script
Visualizamos
Editamos el script con nuestros conocimientos de R, editando cada una de las filas de la tabla. Realmente solo vamos a aprovechar que la estructura de la misma.
Visualizamos de nuevo.

Paso 1, script antes de editar

En primer lugar vamos a hacer la tabla de valores reales, lo que tiene ahora el estudio ...

``` {r paso1}

cro_cases(data$EDAD,data$SEXO)

```

Puedes ver arriba la tabla. Ahora vamos a guardar esa misma tabla en un objeto de R, con el nombre tabla0.

``` {r paso2}

tabla0<-cro_cases(data$EDAD,data$SEXO)

```

Y vamos a editar ese objeto **tabla0** que hemos creado, modificando sus valores

``` {r paso3}

tabla1 <- tabla0

tabla1[1,]=c(tabla1[1,1],720,450)

tabla1[2,]=c(tabla1[2,1],600,450)

tabla1[3,]=c(tabla1[3,1],600,450)

tabla1[4,]=c(tabla1[4,1],550,450)

tabla1[5,]=c(tabla1[5,1],600,450)

tabla1[6,]=c(tabla1[6,1],3070,2250)

tabla1

```

Puedes ver que la tabla recoge los valores que en el script le hemos introducido.

 

Esta secuencia de órdenes han ido editando cada una de las filas de la **tabla0**,

consiguiendo que la **tabla1**, tenga los valores que nosotros deseamos y todo

ello sin necesidad de crear una nueva fuente de datos en la que poder obtener

esta información. Hemos utilizado los comandos base de **R**.

Mostramos también el resultado ...

Resultado

clip0009

Otro  ejemplo, en este caso con un gráfico ...

Ejemplo de código R Markdown

**Box plot de P16 por EDAD**

 

Diagrama de caja (Box-Whiskers) realizado para validar como se comporta

la distribución del Gasto total del grupo (P16) en los difernetes grupos

de edad (EDAD). Los puntos que aparecen en el gráfico fuera de la caja,

por encima o debajo de los límites, son los casos "outliers" o atípicos.

 

------------------------------

 

```{r graf01, fig.width=12, fig.height=6}

library(ggplot2)

ggplot(data, aes(x=factor(EDAD),y=P16,group=EDAD))+

   geom_boxplot()+

   labs(x="Grupos de Edad", y="Gasto total del grupo", title="Box plot de P16 por EDAD")

```

Con el siguiente resultado ...

Resultado

clip0047