Aprender el uso de Openxlsx con R, analizando datos estadisticos del INEGI.
Éste documento permitira entender el uso de open xlsx dentro de R; para lo cual se usaran datos proporcionados por el Instituto Nacional de Estadística y Geografía (INEGI), de la importaciones a Mexico de maquinas de ensayo de materiales a traves de la fraccion arancelaria 902410, en el periodo 2010-2016.
Las maquinas de ensayo de materiales se utilizan para realizar pruebas tecnicas para las diferentes industrias, como la automotriz, aeroespacial, medica y alimetaria, entre otras. Este tipo de pruebas normalmente son destructivas y permiten evaluar la resistencia de los materiales; se realizan pruebas de enlongacion, indentacion, rompimiento, entre otras mas; lo cual permiten a los fabricantes tener la certeza de la calidad y el tiempo de vida de los materiales con lo que se realizan los procesos productivos para las cadenas de valor garantizando seguridad, calidad y confianza a los productos que se ofrezcan al consumidor final. Esta tecnologia es alemana y proviene de la industria 4.0, mejor conocida como la cuarta revolucion industrial.
R es un sistema, con su propio lenguaje de programación, para realizar análisis estadísticos y gráficos creado por Ross Ihaka y Robert Gentleman.Es de acceso abierto, se distribuye gratuitamente y está disponible en diferentes formas según el equipo de cómputo.
Los archivos necesarios para instalar R, se distribuyen desde el sitio de internet Comprehensive R Archive Network (CRAN), su dirección de internet es la siguiente: https://cran.rproject.org/ https://cran.rproject.org/
Se trabajará en RStudio.
Dentro de R tendremos que utilizar diversos paquetes que nos permitirán manipular, leer y graficar bases de datos de acuerdo a los comandos que ejecutemos; para efectos de este manual, nos centraremos en el uso de openxlsx.
Openxlsx, es un paquete dentro de R, que nos permite leer, escribir y editar archivos xlsx.Simplifica la creación de archivos .xlsx de Excel proporcionando una interfaz de alto nivel para escribir, diseñar y editar hojas de cálculo. Mediante el uso de ‘Rcpp’, los tiempos de lectura / escritura son comparables a los paquetes ‘xlsx’ y ‘XLConnect’ con el beneficio añadido de eliminar la dependencia de Java.
El cual se puede instalar de las siguientes formas:
Forma 1 Instalación del paquete Open xlsx en Rstudio, a través de los comandos: install.packages (“openxlsx”) library (openxlsx) require (openxlsx
Forma 2 Otra forma de instalarlo a través de Rstudio, es en el apartado de “Packages”, en su opción “Install”, refiriendo el nombre del paquete openxlsx. Posterior a su carga, se debe de visualizar en el listado de Paquetes el nombre del paquete openxlsx.
Rstudio, primero debemos estar seguros que ya hayamos seleccionado el paquete openxlsx, posterior a ello, le vamos a generar una función para leer la base de datos que deseemos trabaja, para lo cual utilizaremos la función: read.xlsx Ejemplo:
library(openxlsx)
## Warning: package 'openxlsx' was built under R version 3.4.2
Datos=read.xlsx("PAISES.xlsx", sheet = "Hoja1")
Datos
## País 2010 2011 2012 2013 2014 2015
## 1 Alemania 6413826 8338674 5268327 6001542 6877744 8731561
## 2 China 1003942 1037813 1464561 1719005 2608477 2999837
## 3 Estados Unidos 19727206 20906715 24725585 24444810 32036144 32495702
## 4 Japón 1940741 2863493 3641370 5530656 4207855 5259365
## 5 Reino Unido 1531881 1937466 1806774 2499505 2089282 2495515
## 6 <NA> 0 NA NA NA NA NA
## 2016 Total
## 1 10898433 52530107
## 2 4190042 15023677
## 3 28418286 182754448
## 4 6138521 29582001
## 5 1937215 14297638
## 6 NA NA
Para que el comando se ejecute correctamente, debemos asegurarnos que el sentido de las líneas sea éste /. Así como agregar el nombre del archivo tal cual lo hemos guardado, e incluir el .xlsx al final. Para seleccionar la hoja de Excel que vamos a trabajar de ese archivo, debemos especificarlo indicando su nombre en sheet=.
Zwick Roell Group es un proveedor líder mundial de máquinas de ensayo de materiales, fundada en 1920 y con oficinas centrales el Ulm, Alemania.
Empresas con actividad en más de 20 sectores utilizan sus departamentos de I+D y de aseguramiento de calidad máquinas de ensayos de materiales y sistemas de ensayo universales de Zwick.
Además de los ensayos estándar -tracción, compresión y flexión-, con las máquinas de ensayos de materiales de Zwick, también se pueden realizar ensayos multixiales, tales como ensayos de tracción biaxiales y ensayos de torsión. Asimismo, Zwick es fabricante líder de máquinas de ensayos de fatiga, durómetros, péndulos de impacto y medidores de índice de fluidez. Entre nuestros productos, también ofrecemos sistemas de ensayo automatizados.
A continuanión se desarrolla el análisis de los datos, partiendo de manera inicial que los datos que tenemos son categóricos y numéricos.
Datos categoricos
Esto se debe a que los resultados de la tabla extraída de INEGI, de la Balanza comercial de Mercancías de México, de acuerdo a las importaciones de la partida9024, de identificaron los países con mayor índice de importación y éstos fueron los siguientes:
Alemania
China
Estados Unidos
Japón
Reino Unido
Serie y Punto fijo del Tiempo
Otra clasificación de nuestros datos presentados, es la Serie de Tiempo, ya que ésta abarca información recopilada del año 2010 al 2016, observando las variaciones entre cada paíes desarrollado.
Aunado a ello, también podríamos clasificar nuestros datos en un Punto fijo del tiempo, al enfocarnos en los resultados totales de la tabla.
Presentación de los datos
Derivado que nuestros datos categóricos, utilizaremos el paquete “gridExtra”, para poder representar en una tabla la información a estudiar, para lo cual se deben seguir los pasos siguientes:
# 1. Debemos llamar al paquete a usar, mediante el comando de library
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 3.4.2
# 2. Vamos a generar la base de datos, a la cual denominamos "TABINEGI", y le damos la instrucción que la represente como una tabla con el comando "as.table", y para la cual referimos entre paréntesis los datos que integran cada columna.
TABINEGI <-
as.table(cbind(c("Alemania",52530107),c("China",15023677),c("Estados Unidos",182754448),c("Japón",29582001),c("ReinoUnido",14297638)))
TABINEGI <-
as.table(cbind(c(6413826,1003942,19727206,1940741,1531881),
c(8338674,1037813,20906715,2863493,1937466),
c(5268327,1464561,24725585,3641370,1806774),
c(6001542,1719005,24444810,5530656,2499505),
c(6877744,2608477,32036144,4207855,2089282),
c(8731561,2999837,32495702,5259365,2495515),
c(10898433,4190042,28418286,6138521,1937215)))
# 3. Posterior a ello, tenemos que realizar la denominación de los nombres de cada fila y columna.
dimnames(TABINEGI) <-list(País=c("Alemania","China","Estados Unidos","Japón","ReinoUnido"),Año=c("2010","2011","2012","2013","2014","2015","2016"))
# 4. Por último damos la instrucción que se genere visulamente mediante los comandos que se señalan:
plot.new()
grid.table(TABINEGI)
TABINEGI
## Año
## País 2010 2011 2012 2013 2014 2015
## Alemania 6413826 8338674 5268327 6001542 6877744 8731561
## China 1003942 1037813 1464561 1719005 2608477 2999837
## Estados Unidos 19727206 20906715 24725585 24444810 32036144 32495702
## Japón 1940741 2863493 3641370 5530656 4207855 5259365
## ReinoUnido 1531881 1937466 1806774 2499505 2089282 2495515
## Año
## País 2016
## Alemania 10898433
## China 4190042
## Estados Unidos 28418286
## Japón 6138521
## ReinoUnido 1937215
# Indicamos el título y subtítulo de nuestra representación gráfica.
title(main="Países con mayor importación de máquinas y aparatos de ensayo", col.main="coral1", sub="Datos e INEGI / Balanza Comercial de Mercancías", col.sub="cyan3", cex.sub=0.9)
#Otra forma de representar los datos, es mediante un diagrama de Asociación, el cual se puede generar siguiendo los pasos siguientes:
# 1. Necesitamos usa el comando "assocplot", y referir nuestra tabla que hemos trabajado previamente y a la cual denominamos "TABINEGI", para esta representación es necesario la selección de colores, para que se pueda representar las diferencias por varibles.
assocplot(TABINEGI, col=c("blue1","orange3"))
# 2. Del mismo modo con el comando "title" especificamos las características de nuestro texto en el diagrama.
title(main="Países con mayor impotación a México", col.main="magenta", sub="Datos de la partida 9024, INEGI", col.sub="navy", cex.sub=0.9)
#Otra forma de representar estos datos categóricos, es a través del diagrama de espina o Spine Plot, el cual sepuede realizar ejecutando el comando de "spineplot" y refiriendo nuestra tabla.
# 1. Ejecutar el comando (considerando que previamente, ya construimos nuestra tabla denominada TABINEGI)
spineplot(TABINEGI, col=c("red2","pink2"))
# 2. Incluimos los detalles del texto para la interpretación del diagrama
title(main="Países con mayor impotación a México", col.main="tan3", sub="Datos de la partida 9024, INEGI", col.sub="cyan4", cex.sub=0.9)
##Impotación por año (2010-2016)
library(openxlsx)
Datos3<-read.xlsx("PAISES.xlsx", sheet="Hoja3")
attach(Datos3)
mean(x1);mean(y1);mean(x2);mean(y2);mean(x3);mean(y3);mean(x4);mean(y4);mean(x5);mean(y5)
## [1] 2013
## [1] 7504301
## [1] 2013
## [1] 2146240
## [1] 2013
## [1] 26107778
## [1] 2013
## [1] 4226000
## [1] 2013
## [1] 2042520
sd(x1);sd(y1);sd(x2);sd(y2);sd(x3);sd(y3);sd(x4);sd(y4);sd(x5);sd(y5)
## [1] 2.160247
## [1] 1939160
## [1] 2.160247
## [1] 1176158
## [1] 2.160247
## [1] 5061756
## [1] 2.160247
## [1] 1519247
## [1] 2.160247
## [1] 354654.8
cor(x1,y1);cor(x2,y2);cor(x3,y3);cor(x4,y4);cor(x5,y5)
## [1] 0.6305708
## [1] 0.9594294
## [1] 0.862119
## [1] 0.9116318
## [1] 0.5687823
medias <- c(mean(x1), mean(x2), mean(x3), mean(x4), mean(x5))
Dataset1 <- as.table(cbind(x1,y1))
Dataset2 <- as.table(cbind(x2,y2))
Dataset3 <- as.table(cbind(x3,y3))
Dataset4 <- as.table(cbind(x4,y4))
Dataset5 <- as.table(cbind(x5,y5))
# Loading packages for diplay tables and graphs
#library(OIdata)
library(gridExtra)
# ---- dataset 1 ----
plot.new()
grid.table(Dataset1)
plot(x1,y1, main="Alemania",col="Black")
abline(lm(y1~x1),col="darkblue",lw=2)
# ---- dataset 2 ----
plot.new()
grid.table(Dataset2)
plot(x2,y2, main="China",col="Black")
abline(lm(y2~x2),col="green3",lw=2)
# ---- dataset 3 ----
plot.new()
grid.table(Dataset3)
plot(x3,y3, main="Estados Unidos",col="Black")
abline(lm(y3~x3),col="maroon4",lw=2)
# ---- dataset 4 ----
plot.new()
grid.table(Dataset4)
plot(x4,y4, main="Japón",col="Black")
abline(lm(y4~x4),col="purple",lw=2)
# ---- dataset 5 ----
plot.new()
grid.table(Dataset5)
plot(x4,y4, main="Reino Unido",col="Black")
abline(lm(y4~x4),col="tomato1",lw=2)
par(mfrow=c(1, 1))
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.4.3
DatosAle<-read.xlsx("Estadisticas.xlsx", sheet = "EstAle")
summary(DatosAle)
## Año Total
## Length:7 Min. : 5268327
## Class :character 1st Qu.: 6207684
## Mode :character Median : 6877744
## Mean : 7504301
## 3rd Qu.: 8535118
## Max. :10898433
qplot(Año, Total, data=DatosAle) + geom_smooth()
## `geom_smooth()` using method = 'loess'
#China
library(ggplot2)
DatosChi<-read.xlsx("Estadisticas.xlsx", sheet = "EstChi")
summary(DatosChi)
## Año Total
## Length:7 Min. :1003942
## Class :character 1st Qu.:1251187
## Mode :character Median :1719005
## Mean :2146240
## 3rd Qu.:2804157
## Max. :4190042
qplot(Año, Total, data=DatosChi) + geom_smooth()
## `geom_smooth()` using method = 'loess'
#Estados Unidos
library(ggplot2)
DatosEUA<-read.xlsx("Estadisticas.xlsx", sheet = "EstEUA")
summary(DatosEUA)
## Año Total
## Length:7 Min. :19727206
## Class :character 1st Qu.:22675762
## Mode :character Median :24725585
## Mean :26107778
## 3rd Qu.:30227215
## Max. :32495702
qplot(Año, Total, data=DatosEUA) + geom_smooth()
## `geom_smooth()` using method = 'loess'
#Japón
library(ggplot2)
DatosJap<-read.xlsx("Estadisticas.xlsx", sheet = "EstJapon")
summary(DatosJap)
## Año Total
## Length:7 Min. :1940741
## Class :character 1st Qu.:3252432
## Mode :character Median :4207855
## Mean :4226000
## 3rd Qu.:5395010
## Max. :6138521
qplot(Año, Total, data=DatosJap) + geom_smooth()
## `geom_smooth()` using method = 'loess'
#Reino Unido
library(ggplot2)
DatosRei<-read.xlsx("Estadisticas.xlsx", sheet = "EstRei")
summary(DatosRei)
## Año Total
## Length:7 Min. :1531881
## Class :character 1st Qu.:1871995
## Mode :character Median :1937466
## Mean :2042520
## 3rd Qu.:2292399
## Max. :2499505
qplot(Año, Total, data=DatosRei) + geom_smooth()
## `geom_smooth()` using method = 'loess'
#Totales
library(ggplot2)
DatosTotal<-read.xlsx("Estadisticas.xlsx", sheet = "EstTotal")
summary(DatosTotal)
## País Total
## Length:5 Min. : 14297638
## Class :character 1st Qu.: 15023677
## Mode :character Median : 29582001
## Mean : 58837574
## 3rd Qu.: 52530107
## Max. :182754448
qplot(País, Total, data=DatosTotal) + geom_smooth()
## `geom_smooth()` using method = 'loess'
#Totales por País
totales <- c(52530107, 15023677, 182754448, 29582001, 14297638)
names(totales) <- c("Alemania", "China", "Estados Unidos", "Japón", "Reino Unido")
pie(totales, col = rainbow(length(names(totales))), main = "Totales por País")
Con este trabajo podemos concluir que los países con mayor importación de máquinas de ensayo son Estados Unidos, Alemania, China, Japón y Reino Unido. Por lo tanto se tiene más demanda de las máquinas de ensayo de materiales de Estados Unidos, por las variables de costo, tiempos de entragas y cernía a México. Considerando que la calidad es mayor en Alemania. Sin embargo, Alemania cuenta con un rango mayor de número de industrias las que llega entre las principales esta automotriz, médica, alimenticia, aeroespacial, entre otras.
1 R para Principiantes; Emmanuel Paradis; Institut des Sciencies de’l Evolution, Universit Montpellier II; France.
2 Josef Cohen and Jeremiah Y. Cohen, Statistics and Data with R, an applied approach through examples.
3 Michael Crawley, The R book.
4 https://es.wikipedia.org/Xwiki/RStudio (https://es.wikipedia.org/Xwiki/RStudio)