OBJETIVO

Aprender el uso de Openxlsx con R, analizando datos estadisticos del INEGI.

INTRODUCCION

É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.

¿Que es R y Open Xlxs?

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.

Instalación de Open xlsx en R Studio

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.

Obtención de una base de datos de Excel

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=.

Antecedentes:

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.

Analisis y presentacion de datos

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))

Alemania

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")

Conlusiones

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.

Referencias

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)

5 https://cran.rproject.org/ (https://cran.rproject.org/)