miércoles, 15 de abril de 2015

Tablas Dinamicas con R Studio

Las tablas dinámicas son aquel instrumento que nos permite tener una visualización de los datos, un resumen estadístico descriptivo, y también inferencial, desde la exploración de la información que tenemos a la mano. Como tal las tablas dinámicas son de principal uso estadístico por las comparaciones y conclusiones que las mismas nos permiten. En econometria por lo menos , estas tablas dinámicas nos permiten evaluar los datos que vamos a ejecutar y estudiar, antes del proceso de aprendizaje estadístico , hasta la aplicaciones de las pruebas de hipótesis para determinar puntos de validez de los supuestos estudiados

Las tablas dinámicas nos permiten determinar, comparar y analizar grandes sumas de información , sin tener que recurrir a conteos extensos o procesos estadísticos complejos o formulados. Los resúmenes de datos entonces tornan sumamente importantes , usualmente para esto usamos Excel, que es la herramienta más popular en el sector empresarial y en algunos casos publico. 

Hoy lo trabajaremos desde R Studio, por el tema de la visualización de datos, al abrir la consola lo primero que usamos es lo siguientes comandos para instalar un paquete que nos permita desarrollar todo el proceso :


descargamos la función  rpivotTable

devtools::install_github(c("ramnathv/htmlwidgets", "smartinsightsfromdata/rpivotTable"))



Después de incluir este comando encontramos el paquete cargado en R y podemos efectuar operaciones comparativas con los datos que tenemos, por ejemplo:

data(iris)
rpivotTable(iris)

Lo primero que vamos a visualizar es una cabecera con enunciados  de los parámetros que son determinados en la base de datos o data frame que estamos usando. Teniendo en cuenta como son las columnas de estas bases de datos, y las filas , podemos empezar a implementar un analisis de resumen estadístico comparativo desde las características que estemos interesados, por ejemplo en este caso las plantas.

Con la función aggregatorNames, es una opción que nos permite incluir en nuestra tabla dinámica después de creada, otras cabeceras , para así evaluarlas con valores máximos, mínimos, fraccionarios, y de más

Ahora tenemos por ejemplo los siguientes comandos , teniendo en cuenta que la distribución normal (rnorm(40))  es una forma de evaluar la variable continua ( la que más se aproxima a la realidad) desde el parámetro establecido en este caso 40  por el numero de observaciones<- tener en cuenta esto.

> genes = paste('MMP', sprintf("%04d",1:10), sep="")
> data = expand.grid(gene=genes, condition=c('copper', 'cheetos', 'beer', 'pizza'))
> data$value = rnorm(40)
> data
      gene condition        value
1  MMP0001    copper  1.443769724
2  MMP0002    copper -1.421448216
3  MMP0003    copper  0.669242927
4  MMP0004    copper  0.554168313
5  MMP0005    copper  0.444413188
6  MMP0006    copper -1.658372293
7  MMP0007    copper  0.038226213
8  MMP0008    copper  0.632472258
9  MMP0009    copper -0.422818287
10 MMP0010    copper -1.218527849
11 MMP0001   cheetos -0.171208393
12 MMP0002   cheetos -0.636818218
13 MMP0003   cheetos  3.057031597
14 MMP0004   cheetos  0.752206934
15 MMP0005   cheetos  1.457932679
16 MMP0006   cheetos  0.951133538
17 MMP0007   cheetos  1.623095305
18 MMP0008   cheetos  0.978952984
19 MMP0009   cheetos -1.086341846
20 MMP0010   cheetos -1.600872200
21 MMP0001      beer -1.271464914
22 MMP0002      beer  0.900046604
23 MMP0003      beer -0.968698500
24 MMP0004      beer  0.011886421
25 MMP0005      beer -0.047449877
26 MMP0006      beer  0.909543098
27 MMP0007      beer  0.747933152
28 MMP0008      beer -0.688032720
29 MMP0009      beer  0.635196914
30 MMP0010      beer  0.001817584
31 MMP0001     pizza -0.128229805
32 MMP0002     pizza -0.734518194
33 MMP0003     pizza -0.698144874
34 MMP0004     pizza -1.061295382
35 MMP0005     pizza -0.525097741
36 MMP0006     pizza -0.157024161
37 MMP0007     pizza -0.141216607
38 MMP0008     pizza -1.178594575
39 MMP0009     pizza -0.550888367
40 MMP0010     pizza  1.464107950


Al tener la base de datos cargada empezamos a efectuar una interacción más dinamica , por lo cual observamos los siguientes parámetros 

genes = paste('MMP', sprintf("%04d",1:10), sep=“")
ata = expand.grid(gene=genes, condition=c('copper', 'cheetos', 'beer', ‘pizza'))
data$value = rnorm(40)
head(data)


Y de esta manera construimos una tabla de la siguiente forma:

    gene condition      value
1 MMP0001    copper -0.1651530
2 MMP0002    copper -0.2716556
3 MMP0003    copper -0.3100010
4 MMP0004    copper  0.5516467
5 MMP0005    copper -1.7510421
6 MMP0006    copper -1.2251562

Paso seguido construimos el siguiente comando

install.packages(“devtools")
library(devtools)
install_github("ramnathv/htmlwidgets")
install_github("smartinsightsfromdata/rpivotTable")
## Load rpivotTable
library(rpivotTable)

Y paso seguido obtenemos el siguiente resultado después de formular

rpivotTable(data, rows="gene", col="condition", aggregatorName="Average", vals=“value")


Para poder hacer el tema de visualización usamos Bar Chart C3




4 comentarios:

  1. this is the way sii working on the issue of missing dinamcias tables or more things ..

    ResponderEliminar
  2. my question is how this package is installed on r

    ResponderEliminar
  3. Hola Alejandro estos son los paquetes que instalaron de R

    install.packages("devtools")
    install.packages("rpivotTable")

    luego los haces disponibles en tu ambiente
    library(devtools)
    library(rpivotTable)

    Si algo me cuentas
    cordial saludo

    ResponderEliminar
  4. cual es el argumento para poder agregar una variable dentro de la tabla dinámica?? Por ejemplo realizar un calculo matemático de las variables existentes y agregar esta nueva (con el resultado del calculo) dentro de la tabla dinámica?

    ResponderEliminar