Entregable 2.4 - FORM Producción

Llamar base de datos.

#file.choose()
FORM <- read.csv("/Users/ricardogc/Desktop/Entregable 2.4 Reto/FORM - Producción Carton.csv")

Entender Base de Datos

resumen <- summary(FORM)
resumen
##       No.             CLIENTE                ID.FORM    
##  Min.   :   1   STABILUS 1:730                   :  98  
##  1st Qu.: 618   TRMX      :441   00-68-8160-19148:  59  
##  Median :1235   STABILUS 3:397   N.A.            :  54  
##  Mean   :1235   YANFENG   :351   00-68-8160-19166:  37  
##  3rd Qu.:1852   DENSO     :248   19162           :  27  
##  Max.   :2469   VARROC    :142   ST-026-13876    :  26  
##                 (Other)   :160   (Other)         :2168  
##                                                                                         P..DUCTO   
##  16". CAJA IND. IMP. AZUL. ROTATIVA. SR0068 ( 82 c.m. x 122.5 c.m.). 2Pza/GOLPE. ( 1 pieza).:  22  
##  16". CAJA IND. IMP. AZUL. StryCKER.                                                        :  22  
##  GM177 223462. CHAROLA ENSAMBLADA: CELDA + INSERTO.                                         :  22  
##  642762 SEPARADOR. S.M. 642762.                                                             :  21  
##  817904 AUDI COUPE. CHAROLA.                                                                :  21  
##  TOYOTA. MCV. PAD POLIFOAM. ( 24 Pad / Kit).                                                :  21  
##  (Other)                                                                                    :2340  
##   PIEZAS.P..G.      TMO..MIN.      HR..FIN     ESTACION.AR..NQUE
##  Min.   :   1.0          :707          : 750   TROQUEL. : 379   
##  1st Qu.: 100.0   25     :507   9:40   :  39   ROTATIVA : 265   
##  Median : 160.0   10     :377   10:00  :  37   STABILUS : 232   
##  Mean   : 182.7   15     :297   9:25   :  34   TROQUEL  : 201   
##  3rd Qu.: 208.0   20     :274   9:50   :  34   C3       : 160   
##  Max.   :1280.0   40     : 69   10:25  :  33   ROTATIVA.: 154   
##  NA's   :1        (Other):238   (Other):1542   (Other)  :1078   
##  Laminas.Procesadas INICIO.SEP.UP FIN.INICIO.DE.SEP.UP INICIO.de.P....SO
##  Min.   :   0.0     0      :799   0      :808                 : 589     
##  1st Qu.:   0.0            :753          :738          0      : 464     
##  Median :  56.5     9:00   : 42   9:05   :  9          11:40  :  10     
##  Mean   : 108.5     2:00   : 12   1:00   :  8          12:10  :  10     
##  3rd Qu.: 200.0     9:05   : 12   10:10  :  8          9:20   :  10     
##  Max.   :1125.0     9:30   : 12   9:10   :  8          9:55   :  10     
##  NA's   :561        (Other):839   (Other):890          (Other):1376     
##  FIN.de.P....SO TIEMPO..CALIDAD TIEMPO.MATERIALES MERMAS.Maquinas.
##         : 592   1      :1320    Min.   : 0.000    Min.   : 0.000  
##  0      : 463          : 601    1st Qu.: 0.000    1st Qu.: 0.000  
##  9:30   :  15   0      : 465    Median : 0.000    Median : 1.000  
##  10:10  :  11   2      :  35    Mean   : 2.321    Mean   : 1.626  
##  11:40  :  11   3      :   8    3rd Qu.: 1.000    3rd Qu.: 1.000  
##  12:30  :  11   10     :   6    Max.   :48.000    Max.   :50.000  
##  (Other):1366   (Other):  34    NA's   :2148      NA's   :2362    
##        Date     
##  30/08/22: 113  
##  19/08/22: 110  
##  02/08/22: 109  
##  26/08/22: 109  
##  01/08/22: 108  
##  03/08/22: 108  
##  (Other) :1812

1.¿Cuántas variables y cuántos registros tiene la base de datos?

R= 2469 registros y 17 variables
str(FORM)
## 'data.frame':    2469 obs. of  17 variables:
##  $ No.                 : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ CLIENTE             : Factor w/ 12 levels "","DENSO","HEL  ",..: 10 10 10 2 2 12 12 12 12 12 ...
##  $ ID.FORM             : Factor w/ 250 levels "","  DA 768",..: 206 205 229 1 1 34 22 22 22 25 ...
##  $ P..DUCTO            : Factor w/ 455 levels "","  BLE SET PA     NASTIL  .   JA. ST0210: 80.2 x 100 c.m. ( HANDHOLD).",..: 101 96 99 420 424 247 277 266 272 254 ...
##  $ PIEZAS.P..G.        : int  199 57 68 192 192 400 80 104 104 160 ...
##  $ TMO..MIN.           : Factor w/ 23 levels "","0","0:00",..: 7 4 4 7 7 11 7 7 7 9 ...
##  $ HR..FIN             : Factor w/ 158 levels "","0:00","0.385416667",..: 149 151 153 157 21 27 31 34 37 41 ...
##  $ ESTACION.AR..NQUE   : Factor w/ 40 levels "","  DAS","  DAS.",..: 15 18 18 15 15 15 15 15 15 15 ...
##  $ Laminas.Procesadas  : int  201 116 69 49 49 801 41 53 53 55 ...
##  $ INICIO.SEP.UP       : Factor w/ 427 levels "",":51","0","0:00",..: 365 388 29 37 43 95 128 3 3 173 ...
##  $ FIN.INICIO.DE.SEP.UP: Factor w/ 479 levels "","0","0:00",..: 417 436 42 96 58 80 148 2 2 227 ...
##  $ INICIO.de.P....SO   : Factor w/ 590 levels "","0","0:00",..: 524 543 66 73 81 140 186 222 228 243 ...
##  $ FIN.de.P....SO      : Factor w/ 603 levels "","0","0:00",..: 562 588 130 85 147 221 238 244 249 273 ...
##  $ TIEMPO..CALIDAD     : Factor w/ 34 levels "","0","1","1:22",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ TIEMPO.MATERIALES   : int  NA NA NA NA NA 3 NA NA NA NA ...
##  $ MERMAS.Maquinas.    : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Date                : Factor w/ 27 levels "01/08/22","02/08/22",..: 1 1 1 1 1 1 1 1 1 1 ...
#library(psych)
#install.packages("psych")
#describe(FORM)

Nota: Debido a la versión de R, nos deja descargar el paquete “psych”, por lo que tampoco no nos deja llamar a la librería “psych”, por lo tanto utilizamos str, para obtener el numero de las variables de la base de datos.

2.Clasifica cada variable en cualitativa, cuantitativa discreta o cuantitativa continua.

Realizamos una tabla para poder clasificar cada una de las variables de la base de Datos bd1

Variable<-c("No.","CLIENTE","ID.FORM ", "P..DUCTO","PIEZAS.P..G.","TMO..MIN.","HR..FIN","ESTACION.AR..NQUE","Laminas.Procesadas"," INICIO.SEP.UP","FIN.INICIO.DE.SEP.UP","INICIO.de.P....SO", "FIN.de.P....SO","TIEMPO..CALIDAD","TIEMPO.MATERIALES","MERMAS.Maquinas.","Date")
Type<-c("Cuantitativa (Discreta)", "Cualitativa", "Cuantitativa (Discreta)", "Cualitativa", "Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cualitativa","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)")
table<-data.frame(Variable,Type)
knitr::kable(table)
Variable Type
No. Cuantitativa (Discreta)
CLIENTE Cualitativa
ID.FORM Cuantitativa (Discreta)
P..DUCTO Cualitativa
PIEZAS.P..G. Cuantitativa (Discreta)
TMO..MIN. Cuantitativa (Discreta)
HR..FIN Cuantitativa (Discreta)
ESTACION.AR..NQUE Cualitativa
Laminas.Procesadas Cuantitativa (Discreta)
INICIO.SEP.UP Cuantitativa (Discreta)
FIN.INICIO.DE.SEP.UP Cuantitativa (Discreta)
INICIO.de.P….SO Cuantitativa (Discreta)
FIN.de.P….SO Cuantitativa (Discreta)
TIEMPO..CALIDAD Cuantitativa (Discreta)
TIEMPO.MATERIALES Cuantitativa (Discreta)
MERMAS.Maquinas. Cuantitativa (Discreta)
Date Cuantitativa (Discreta)

3. Elige la escala de medición de cada variable.

Realizamos una tabla donde viene clasificado cada variable y agregamos una columna con la escala de medición para cada variable.

Variable<-c("No.","CLIENTE","ID.FORM ", "P..DUCTO","PIEZAS.P..G.","TMO..MIN.","HR..FIN","ESTACION.AR..NQUE","Laminas.Procesadas"," INICIO.SEP.UP","FIN.INICIO.DE.SEP.UP","INICIO.de.P....SO", "FIN.de.P....SO","TIEMPO..CALIDAD","TIEMPO.MATERIALES","MERMAS.Maquinas.","Date")
Type<-c("Cuantitativa (Discreta)", "Cualitativa", "Cuantitativa (Discreta)", "Cualitativa", "Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cualitativa","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)","Cuantitativa (Discreta)")
Escala_de_Medición <- c("Numero", "Empresa", "ID","Categoria", "Piezas", "Minutos","Tiempo","Maquina","Sobrante","Hora","Hora","Hora","Hora","Tiempo","Tiempo","Mermas","Fecha")
table<-data.frame(Variable,Type,Escala_de_Medición)
knitr::kable(table)
Variable Type Escala_de_Medición
No. Cuantitativa (Discreta) Numero
CLIENTE Cualitativa Empresa
ID.FORM Cuantitativa (Discreta) ID
P..DUCTO Cualitativa Categoria
PIEZAS.P..G. Cuantitativa (Discreta) Piezas
TMO..MIN. Cuantitativa (Discreta) Minutos
HR..FIN Cuantitativa (Discreta) Tiempo
ESTACION.AR..NQUE Cualitativa Maquina
Laminas.Procesadas Cuantitativa (Discreta) Sobrante
INICIO.SEP.UP Cuantitativa (Discreta) Hora
FIN.INICIO.DE.SEP.UP Cuantitativa (Discreta) Hora
INICIO.de.P….SO Cuantitativa (Discreta) Hora
FIN.de.P….SO Cuantitativa (Discreta) Hora
TIEMPO..CALIDAD Cuantitativa (Discreta) Tiempo
TIEMPO.MATERIALES Cuantitativa (Discreta) Tiempo
MERMAS.Maquinas. Cuantitativa (Discreta) Mermas
Date Cuantitativa (Discreta) Fecha

4. Aplica al menos 2 tecnicas de limpieza de base de datos y explicalas brevemente, ¿Porqué realizaste estas tecnicas?

La primer tecnica de limpieza que utilizamos fue, eliminar columnas debido a que contabamos con datos los cuales no eran relevantes para el análisis.

La segunda herramienta de limpieza que utilizamos para la visulización de los datos fue, implementar una nueva columna como el total de la Producción de las variables que se producen por país.

Tecnica 1. Remover Valores Irrelevantes

Eliminar columnas

bd1 <- FORM
bd1<-subset(bd1,select=-c(No.,ID.FORM, P..DUCTO,HR..FIN, ESTACION.AR..NQUE, INICIO.SEP.UP, FIN.INICIO.DE.SEP.UP,INICIO.de.P....SO, FIN.de.P....SO, TIEMPO.MATERIALES, MERMAS.Maquinas.))
str(bd1)
## 'data.frame':    2469 obs. of  6 variables:
##  $ CLIENTE           : Factor w/ 12 levels "","DENSO","HEL  ",..: 10 10 10 2 2 12 12 12 12 12 ...
##  $ PIEZAS.P..G.      : int  199 57 68 192 192 400 80 104 104 160 ...
##  $ TMO..MIN.         : Factor w/ 23 levels "","0","0:00",..: 7 4 4 7 7 11 7 7 7 9 ...
##  $ Laminas.Procesadas: int  201 116 69 49 49 801 41 53 53 55 ...
##  $ TIEMPO..CALIDAD   : Factor w/ 34 levels "","0","1","1:22",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Date              : Factor w/ 27 levels "01/08/22","02/08/22",..: 1 1 1 1 1 1 1 1 1 1 ...

Nota: Se eliminan No.,ID.FORM,P..DUCTO,HR..FIN,ESTACION.AR..NQUE,NICIO.SEP.UP,FIN.INICIO.DE.SEP.UP,INICIO.de.P….SO,FIN.de.P….SO ,TIEMPO.MATERIALES,MERMAS.Maquinas., ya que no nos sirven, debido a que es el mismo dato para todos los registros. Y es algo que no nos aporta alguna información.

Tecnica 5. Valores Faltantes

Reemplazar NA con ceros

bd1[is.na(bd1)]<-0
summary(bd1)
##        CLIENTE     PIEZAS.P..G.      TMO..MIN.   Laminas.Procesadas
##  STABILUS 1:730   Min.   :   0.0          :707   Min.   :   0.00   
##  TRMX      :441   1st Qu.: 100.0   25     :507   1st Qu.:   0.00   
##  STABILUS 3:397   Median : 160.0   10     :377   Median :  29.00   
##  YANFENG   :351   Mean   : 182.7   15     :297   Mean   :  83.87   
##  DENSO     :248   3rd Qu.: 208.0   20     :274   3rd Qu.: 122.00   
##  VARROC    :142   Max.   :1280.0   40     : 69   Max.   :1125.00   
##  (Other)   :160                    (Other):238                     
##  TIEMPO..CALIDAD       Date     
##  1      :1320    30/08/22: 113  
##         : 601    19/08/22: 110  
##  0      : 465    02/08/22: 109  
##  2      :  35    26/08/22: 109  
##  3      :   8    01/08/22: 108  
##  10     :   6    03/08/22: 108  
##  (Other):  34    (Other) :1812

Reemplazamos los NA encontrados en la base de datos y los que eran numericos los cambiamos por 0.

5. Incluir una breve reflexión de la actividad.

Realizar un análisis estadístico descriptivo en el que logres destacar el conjunto de datos, que apoyan a la empresa a mejorar su operación. Incorpora al menos dos propuestas concretas, apoyadas de tu análisis en donde se incluye al menos: (1) Tabla de frecuencia, (opcional) Tablas cruzadas, (2-3) Gráficos de datos cualitativos y cuantitativos, así como (2-3) Gráficos de dispersión.

Analisis Estadistico Descriptivo

#describe(bd1)

Función no posible por la versión que se tiene en R

Tabla de Frecuencia

#install.packages("epiDisplay")
library(epiDisplay)
## Loading required package: foreign
## Loading required package: survival
## Loading required package: MASS
## Loading required package: nnet
tab1<-table(bd1$CLIENTE, bd1$TIEMPO..CALIDAD) # A will be rows, B will be columns
tab1
##                       
##                              0   1 1:22 1.4  10 10:00 10:04 10:17  11 11:22
##                          5  15   0    0   0   0     0     0     0   0     0
##   DENSO                 46  37 164    0   0   0     0     0     0   0     0
##   HEL                    3   0   0    0   0   0     0     0     0   0     0
##   HELLA                 12  18  47    0   0   0     0     0     0   0     0
##   MERIDIAN LIGHTWEIGHT   7  11  18    0   0   1     0     0     0   0     0
##   STABILUS 1           132 115 455    0   1   2     1     1     0   1     1
##   STABILUS 3           144  68 177    0   0   0     0     0     1   0     0
##   STABILUS 3.            1   4  13    0   0   0     0     0     0   0     0
##   TRMX                 153  79 193    1   0   0     0     0     0   0     0
##   VARROC                12  27  91    0   0   1     0     0     0   1     0
##   VL-017-14086           0   1   0    0   0   0     0     0     0   0     0
##   YANFENG               86  90 162    0   0   2     0     0     0   0     0
##                       
##                        11:43 11:55 12:30 12:45 12:53  17   2 2:15 2:20 2:42  21
##                            0     0     0     0     0   0   0    0    0    0   0
##   DENSO                    0     0     0     0     0   0   1    0    0    0   0
##   HEL                      0     0     0     0     0   0   0    0    0    0   0
##   HELLA                    0     0     0     0     0   0   0    0    0    0   0
##   MERIDIAN LIGHTWEIGHT     0     0     0     0     0   0   2    0    0    0   0
##   STABILUS 1               1     0     1     0     0   0  11    0    0    0   0
##   STABILUS 3               0     0     0     0     0   0   5    0    0    0   0
##   STABILUS 3.              0     0     0     0     0   0   0    0    0    0   0
##   TRMX                     0     1     0     1     1   1   4    1    0    0   0
##   VARROC                   0     0     0     0     0   0   6    0    0    0   1
##   VL-017-14086             0     0     0     0     0   0   0    0    0    0   0
##   YANFENG                  0     0     0     0     0   0   6    0    1    1   0
##                       
##                         22   3 3:15   4   5   7   8 8:18 8:38   9 9:05 9:30
##                          0   0    0   0   0   0   0    0    0   0    0    0
##   DENSO                  0   0    0   0   0   0   0    0    0   0    0    0
##   HEL                    0   0    0   0   0   0   0    0    0   0    0    0
##   HELLA                  0   1    0   0   0   0   0    0    0   0    0    0
##   MERIDIAN LIGHTWEIGHT   0   1    0   0   0   0   0    0    0   0    0    0
##   STABILUS 1             0   2    1   2   2   0   0    0    0   0    0    1
##   STABILUS 3             0   0    0   0   0   0   0    1    0   1    0    0
##   STABILUS 3.            0   0    0   0   0   0   0    0    0   0    0    0
##   TRMX                   1   2    0   0   1   0   0    0    1   0    1    0
##   VARROC                 0   2    0   0   0   1   0    0    0   0    0    0
##   VL-017-14086           0   0    0   0   0   0   0    0    0   0    0    0
##   YANFENG                0   0    0   0   1   1   1    0    0   0    0    0
prop.table(tab1, 2) # column percentages
##                       
##                                              0           1        1:22
##                        0.008319468 0.032258065 0.000000000 0.000000000
##   DENSO                0.076539101 0.079569892 0.124242424 0.000000000
##   HEL                  0.004991681 0.000000000 0.000000000 0.000000000
##   HELLA                0.019966722 0.038709677 0.035606061 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.011647255 0.023655914 0.013636364 0.000000000
##   STABILUS 1           0.219633943 0.247311828 0.344696970 0.000000000
##   STABILUS 3           0.239600666 0.146236559 0.134090909 0.000000000
##   STABILUS 3.          0.001663894 0.008602151 0.009848485 0.000000000
##   TRMX                 0.254575707 0.169892473 0.146212121 1.000000000
##   VARROC               0.019966722 0.058064516 0.068939394 0.000000000
##   VL-017-14086         0.000000000 0.002150538 0.000000000 0.000000000
##   YANFENG              0.143094842 0.193548387 0.122727273 0.000000000
##                       
##                                1.4          10       10:00       10:04
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.166666667 0.000000000 0.000000000
##   STABILUS 1           1.000000000 0.333333333 1.000000000 1.000000000
##   STABILUS 3           0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 0.000000000 0.000000000 0.000000000 0.000000000
##   VARROC               0.000000000 0.166666667 0.000000000 0.000000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              0.000000000 0.333333333 0.000000000 0.000000000
##                       
##                              10:17          11       11:22       11:43
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 1           0.000000000 0.500000000 1.000000000 1.000000000
##   STABILUS 3           1.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 0.000000000 0.000000000 0.000000000 0.000000000
##   VARROC               0.000000000 0.500000000 0.000000000 0.000000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              0.000000000 0.000000000 0.000000000 0.000000000
##                       
##                              11:55       12:30       12:45       12:53
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 1           0.000000000 1.000000000 0.000000000 0.000000000
##   STABILUS 3           0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 1.000000000 0.000000000 1.000000000 1.000000000
##   VARROC               0.000000000 0.000000000 0.000000000 0.000000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              0.000000000 0.000000000 0.000000000 0.000000000
##                       
##                                 17           2        2:15        2:20
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.028571429 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.057142857 0.000000000 0.000000000
##   STABILUS 1           0.000000000 0.314285714 0.000000000 0.000000000
##   STABILUS 3           0.000000000 0.142857143 0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 1.000000000 0.114285714 1.000000000 0.000000000
##   VARROC               0.000000000 0.171428571 0.000000000 0.000000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              0.000000000 0.171428571 0.000000000 1.000000000
##                       
##                               2:42          21          22           3
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.125000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.000000000 0.000000000 0.125000000
##   STABILUS 1           0.000000000 0.000000000 0.000000000 0.250000000
##   STABILUS 3           0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 0.000000000 0.000000000 1.000000000 0.250000000
##   VARROC               0.000000000 1.000000000 0.000000000 0.250000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              1.000000000 0.000000000 0.000000000 0.000000000
##                       
##                               3:15           4           5           7
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 1           1.000000000 1.000000000 0.500000000 0.000000000
##   STABILUS 3           0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 0.000000000 0.000000000 0.250000000 0.000000000
##   VARROC               0.000000000 0.000000000 0.000000000 0.500000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              0.000000000 0.000000000 0.250000000 0.500000000
##                       
##                                  8        8:18        8:38           9
##                        0.000000000 0.000000000 0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000 0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000 0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000 0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 1           0.000000000 0.000000000 0.000000000 0.000000000
##   STABILUS 3           0.000000000 1.000000000 0.000000000 1.000000000
##   STABILUS 3.          0.000000000 0.000000000 0.000000000 0.000000000
##   TRMX                 0.000000000 0.000000000 1.000000000 0.000000000
##   VARROC               0.000000000 0.000000000 0.000000000 0.000000000
##   VL-017-14086         0.000000000 0.000000000 0.000000000 0.000000000
##   YANFENG              1.000000000 0.000000000 0.000000000 0.000000000
##                       
##                               9:05        9:30
##                        0.000000000 0.000000000
##   DENSO                0.000000000 0.000000000
##   HEL                  0.000000000 0.000000000
##   HELLA                0.000000000 0.000000000
##   MERIDIAN LIGHTWEIGHT 0.000000000 0.000000000
##   STABILUS 1           0.000000000 1.000000000
##   STABILUS 3           0.000000000 0.000000000
##   STABILUS 3.          0.000000000 0.000000000
##   TRMX                 1.000000000 0.000000000
##   VARROC               0.000000000 0.000000000
##   VL-017-14086         0.000000000 0.000000000
##   YANFENG              0.000000000 0.000000000

Grafica Cualitativa

bd2 <- table(bd1$CLIENTE)
bd2 <- prop.table(bd2)
bd2
## 
##                                     DENSO                HEL   
##         0.0081004455         0.1004455245         0.0012150668 
##                HELLA MERIDIAN LIGHTWEIGHT           STABILUS 1 
##         0.0315917375         0.0162008910         0.2956662616 
##           STABILUS 3          STABILUS 3.                 TRMX 
##         0.1607938437         0.0072904010         0.1786148238 
##               VARROC         VL-017-14086              YANFENG 
##         0.0575131632         0.0004050223         0.1421628190
barplot(bd2, xlab='Cliente',
        ylab='Frecuencia Relativa', las=3, col="blue1")

Grafica Cuantitativa

bd3<-subset(bd1,select=-c(Laminas.Procesadas,Date, TMO..MIN., PIEZAS.P..G. ))
str(bd3)
## 'data.frame':    2469 obs. of  2 variables:
##  $ CLIENTE        : Factor w/ 12 levels "","DENSO","HEL  ",..: 10 10 10 2 2 12 12 12 12 12 ...
##  $ TIEMPO..CALIDAD: Factor w/ 34 levels "","0","1","1:22",..: 3 3 3 3 3 3 3 3 3 3 ...
plot(bd3, main = "Grafica Cuantitativa")

Grafica Dispersión

library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:epiDisplay':
## 
##     alpha
ggplot(bd1, aes(x=TIEMPO..CALIDAD , y=CLIENTE)) + 
  geom_point(shape=19, size=3) + labs(title = "Relación entre Tiempo Calidad y Cliente",caption ="FORM Producción",x="Tiempo Calidad", y="CLientes") + theme_classic()

Grafica de Dispersión Relación Cliente y Piezas (Producción)

plot(x = bd1$CLIENTE, y = bd1$PIEZAS.P..G., main = "Grafica Dispersión", xlab = "CLiente", ylab = "Producción", las=3)

Propuestas

AL analizar la base de Datos obtuve información bastante interesante, y basado en este analisis es que realice la siguiente propuesta para FORM:

  1. Realizar un nuevo departamento enfocado al cumplimiento y buen monitoreo de los pedidos de los principales clientes, esto con el proposito de dar mayor atención. Aunado a esto, también enfocarse en los clientes secundarios impulsando el mejorar la calidad de servicio y atención, haciendo que estos sean más frecuentes sus pedidos.

6. Incluye una breve reflexión

Para poder llevar a cabo correctamente el analisis de la base de datos tuve que llevar a cabo los siguientes pasos, con el fin de poder tener una base de datos limpia:

  1. Checar base de Datos en el excel y modificar el formato de registros.
  2. Exportar base de datos
  3. Entender la base de datos
  4. Identificar las diferentes variables y registros, así mismo diferenciar los tipos del variables junto con su escala de medida.
  5. Limpieza con herramienta de datos para ser más eficaz y rapido que manualmente en Excel.
  6. Realización de analisis descriptivo de la base de datos (Tomar en cuenta la función Describe y tener actualizado R), y realizar una tabla de frecuencia de los datos.
  7. Hacer graficas con diversas variables para ver su comportamiento y poder obtener información importante para aportar a la empresa.

Con todos estos paso entendí la importancia de tener cuidado con los distintos codigos y estar atento para no tener errores y llegar al resultado esperado con un analisis preciso y de valor para la empresa.

LS0tCnRpdGxlOiA8c3BhbiBzdHlsZT0iQ29sb3I6Y2hvY29sYXRlIj4gIkVudHJlZ2FibGUgMi40IgphdXRob3I6ICJSaWNhcmRvIEdhbGljaWEgLSBBMDE2NTMyNzkiCmRhdGU6ICcyMDIyLTA5LTIzJwpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgY29kZV9kb3dubG9hZDogdHJ1ZSAKLS0tCiMjICoqRW50cmVnYWJsZSAyLjQgLSBGT1JNIFByb2R1Y2Npw7NuKioKCiFbXSgvVXNlcnMvcmljYXJkb2djL0Rlc2t0b3AvRW50cmVnYWJsZSAyLjQgUmV0by9jYXJkYm9hcmRwcm9kdWN0aW9uXzBfMC5QTkcpCgojIyMgTGxhbWFyIGJhc2UgZGUgZGF0b3MuCgpgYGB7cn0KI2ZpbGUuY2hvb3NlKCkKRk9STSA8LSByZWFkLmNzdigiL1VzZXJzL3JpY2FyZG9nYy9EZXNrdG9wL0VudHJlZ2FibGUgMi40IFJldG8vRk9STSAtIFByb2R1Y2Npb8yBbiBDYXJ0b24uY3N2IikKYGBgCgojIyMgRW50ZW5kZXIgQmFzZSBkZSBEYXRvcwpgYGB7cn0KcmVzdW1lbiA8LSBzdW1tYXJ5KEZPUk0pCnJlc3VtZW4KYGBgCgojIyMgKjEuwr9DdcOhbnRhcyB2YXJpYWJsZXMgeSBjdcOhbnRvcyByZWdpc3Ryb3MgdGllbmUgbGEgYmFzZSBkZSBkYXRvcz8qCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSJjb2xvcjpSZWQiPiBSPSAyNDY5IHJlZ2lzdHJvcyB5IDE3IHZhcmlhYmxlcyA8L2NlbnRlcj4KYGBge3J9CnN0cihGT1JNKQojbGlicmFyeShwc3ljaCkKI2luc3RhbGwucGFja2FnZXMoInBzeWNoIikKI2Rlc2NyaWJlKEZPUk0pCmBgYAoKIyMjIyBOb3RhOiBEZWJpZG8gYSBsYSB2ZXJzacOzbiBkZSBSLCBub3MgZGVqYSBkZXNjYXJnYXIgZWwgcGFxdWV0ZSAicHN5Y2giLCBwb3IgbG8gcXVlIHRhbXBvY28gbm8gbm9zIGRlamEgbGxhbWFyIGEgbGEgbGlicmVyw61hICJwc3ljaCIsIHBvciBsbyB0YW50byB1dGlsaXphbW9zIHN0ciwgcGFyYSBvYnRlbmVyIGVsIG51bWVybyBkZSBsYXMgdmFyaWFibGVzIGRlIGxhIGJhc2UgZGUgZGF0b3MuCgojIyMgKjIuQ2xhc2lmaWNhIGNhZGEgdmFyaWFibGUgZW4gY3VhbGl0YXRpdmEsIGN1YW50aXRhdGl2YSBkaXNjcmV0YSBvIGN1YW50aXRhdGl2YSBjb250aW51YS4qCiMjIyMgUmVhbGl6YW1vcyB1bmEgdGFibGEgcGFyYSBwb2RlciBjbGFzaWZpY2FyIGNhZGEgdW5hIGRlIGxhcyB2YXJpYWJsZXMgZGUgbGEgYmFzZSBkZSBEYXRvcyBiZDEKCmBgYHtyfQpWYXJpYWJsZTwtYygiTm8uIiwiQ0xJRU5URSIsIklELkZPUk0gIiwgIlAuLkRVQ1RPIiwiUElFWkFTLlAuLkcuIiwiVE1PLi5NSU4uIiwiSFIuLkZJTiIsIkVTVEFDSU9OLkFSLi5OUVVFIiwiTGFtaW5hcy5Qcm9jZXNhZGFzIiwiIElOSUNJTy5TRVAuVVAiLCJGSU4uSU5JQ0lPLkRFLlNFUC5VUCIsIklOSUNJTy5kZS5QLi4uLlNPIiwgIkZJTi5kZS5QLi4uLlNPIiwiVElFTVBPLi5DQUxJREFEIiwiVElFTVBPLk1BVEVSSUFMRVMiLCJNRVJNQVMuTWFxdWluYXMuIiwiRGF0ZSIpClR5cGU8LWMoIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwgIkN1YWxpdGF0aXZhIiwgIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwgIkN1YWxpdGF0aXZhIiwgIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YWxpdGF0aXZhIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIikKdGFibGU8LWRhdGEuZnJhbWUoVmFyaWFibGUsVHlwZSkKa25pdHI6OmthYmxlKHRhYmxlKQpgYGAKCiMjIyAqMy4gRWxpZ2UgbGEgZXNjYWxhIGRlIG1lZGljacOzbiBkZSBjYWRhIHZhcmlhYmxlLiogCiMjIyMgUmVhbGl6YW1vcyB1bmEgdGFibGEgZG9uZGUgdmllbmUgY2xhc2lmaWNhZG8gY2FkYSB2YXJpYWJsZSB5IGFncmVnYW1vcyB1bmEgY29sdW1uYSBjb24gbGEgZXNjYWxhIGRlIG1lZGljacOzbiBwYXJhIGNhZGEgdmFyaWFibGUuIApgYGB7cn0KVmFyaWFibGU8LWMoIk5vLiIsIkNMSUVOVEUiLCJJRC5GT1JNICIsICJQLi5EVUNUTyIsIlBJRVpBUy5QLi5HLiIsIlRNTy4uTUlOLiIsIkhSLi5GSU4iLCJFU1RBQ0lPTi5BUi4uTlFVRSIsIkxhbWluYXMuUHJvY2VzYWRhcyIsIiBJTklDSU8uU0VQLlVQIiwiRklOLklOSUNJTy5ERS5TRVAuVVAiLCJJTklDSU8uZGUuUC4uLi5TTyIsICJGSU4uZGUuUC4uLi5TTyIsIlRJRU1QTy4uQ0FMSURBRCIsIlRJRU1QTy5NQVRFUklBTEVTIiwiTUVSTUFTLk1hcXVpbmFzLiIsIkRhdGUiKQpUeXBlPC1jKCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsICJDdWFsaXRhdGl2YSIsICJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsICJDdWFsaXRhdGl2YSIsICJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFsaXRhdGl2YSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIsIkN1YW50aXRhdGl2YSAoRGlzY3JldGEpIiwiQ3VhbnRpdGF0aXZhIChEaXNjcmV0YSkiLCJDdWFudGl0YXRpdmEgKERpc2NyZXRhKSIpCkVzY2FsYV9kZV9NZWRpY2nDs24gPC0gYygiTnVtZXJvIiwgIkVtcHJlc2EiLCAiSUQiLCJDYXRlZ29yaWEiLCAiUGllemFzIiwgIk1pbnV0b3MiLCJUaWVtcG8iLCJNYXF1aW5hIiwiU29icmFudGUiLCJIb3JhIiwiSG9yYSIsIkhvcmEiLCJIb3JhIiwiVGllbXBvIiwiVGllbXBvIiwiTWVybWFzIiwiRmVjaGEiKQp0YWJsZTwtZGF0YS5mcmFtZShWYXJpYWJsZSxUeXBlLEVzY2FsYV9kZV9NZWRpY2nDs24pCmtuaXRyOjprYWJsZSh0YWJsZSkKYGBgCgojIyMgKjQuIEFwbGljYSBhbCBtZW5vcyAyIHRlY25pY2FzIGRlIGxpbXBpZXphIGRlIGJhc2UgZGUgZGF0b3MgeSBleHBsaWNhbGFzIGJyZXZlbWVudGUsIMK/UG9ycXXDqSByZWFsaXphc3RlIGVzdGFzIHRlY25pY2FzPyoKIyMjIyBMYSBwcmltZXIgdGVjbmljYSBkZSBsaW1waWV6YSBxdWUgdXRpbGl6YW1vcyBmdWUsIGVsaW1pbmFyIGNvbHVtbmFzIGRlYmlkbyBhIHF1ZSBjb250YWJhbW9zIGNvbiBkYXRvcyBsb3MgY3VhbGVzIG5vIGVyYW4gcmVsZXZhbnRlcyBwYXJhIGVsIGFuw6FsaXNpcy4gCiMjIyMgTGEgc2VndW5kYSBoZXJyYW1pZW50YSBkZSBsaW1waWV6YSBxdWUgdXRpbGl6YW1vcyBwYXJhIGxhIHZpc3VsaXphY2nDs24gZGUgbG9zIGRhdG9zIGZ1ZSwgaW1wbGVtZW50YXIgdW5hIG51ZXZhIGNvbHVtbmEgY29tbyBlbCB0b3RhbCBkZSBsYSBQcm9kdWNjacOzbiBkZSBsYXMgdmFyaWFibGVzIHF1ZSBzZSBwcm9kdWNlbiBwb3IgcGHDrXMuCgojIyMgKlRlY25pY2EgMS4qIFJlbW92ZXIgVmFsb3JlcyBJcnJlbGV2YW50ZXMKIyMjIyBFbGltaW5hciBjb2x1bW5hcyAKYGBge3J9CmJkMSA8LSBGT1JNCmJkMTwtc3Vic2V0KGJkMSxzZWxlY3Q9LWMoTm8uLElELkZPUk0sIFAuLkRVQ1RPLEhSLi5GSU4sIEVTVEFDSU9OLkFSLi5OUVVFLCBJTklDSU8uU0VQLlVQLCBGSU4uSU5JQ0lPLkRFLlNFUC5VUCxJTklDSU8uZGUuUC4uLi5TTywgRklOLmRlLlAuLi4uU08sIFRJRU1QTy5NQVRFUklBTEVTLCBNRVJNQVMuTWFxdWluYXMuKSkKc3RyKGJkMSkKYGBgCgojIyMjIE5vdGE6IFNlIGVsaW1pbmFuIE5vLixJRC5GT1JNLFAuLkRVQ1RPLEhSLi5GSU4sRVNUQUNJT04uQVIuLk5RVUUsTklDSU8uU0VQLlVQLEZJTi5JTklDSU8uREUuU0VQLlVQLElOSUNJTy5kZS5QLi4uLlNPLEZJTi5kZS5QLi4uLlNPICxUSUVNUE8uTUFURVJJQUxFUyxNRVJNQVMuTWFxdWluYXMuLCB5YSBxdWUgbm8gbm9zIHNpcnZlbiwgZGViaWRvIGEgcXVlIGVzIGVsIG1pc21vIGRhdG8gcGFyYSB0b2RvcyBsb3MgcmVnaXN0cm9zLiBZIGVzIGFsZ28gcXVlIG5vIG5vcyBhcG9ydGEgYWxndW5hIGluZm9ybWFjacOzbi4KCiMjIyAqVGVjbmljYSA1LiogVmFsb3JlcyBGYWx0YW50ZXMKIyMjIyBSZWVtcGxhemFyIE5BIGNvbiBjZXJvcwpgYGB7cn0KYmQxW2lzLm5hKGJkMSldPC0wCnN1bW1hcnkoYmQxKQpgYGAKIyMjIFJlZW1wbGF6YW1vcyBsb3MgTkEgZW5jb250cmFkb3MgZW4gbGEgYmFzZSBkZSBkYXRvcyB5IGxvcyBxdWUgZXJhbiBudW1lcmljb3MgbG9zIGNhbWJpYW1vcyBwb3IgMC4gCgojIyMgKjUuIEluY2x1aXIgdW5hIGJyZXZlIHJlZmxleGnDs24gZGUgbGEgYWN0aXZpZGFkLioKUmVhbGl6YXIgdW4gYW7DoWxpc2lzIGVzdGFkw61zdGljbyBkZXNjcmlwdGl2byBlbiBlbCBxdWUgbG9ncmVzIGRlc3RhY2FyIGVsIGNvbmp1bnRvIGRlIGRhdG9zLCBxdWUgYXBveWFuIGEgbGEgZW1wcmVzYSBhIG1lam9yYXIgc3Ugb3BlcmFjacOzbi4gSW5jb3Jwb3JhIGFsIG1lbm9zIGRvcyBwcm9wdWVzdGFzIGNvbmNyZXRhcywgYXBveWFkYXMgZGUgdHUgYW7DoWxpc2lzIGVuIGRvbmRlIHNlIGluY2x1eWUgYWwgbWVub3M6ICgxKSBUYWJsYSBkZSBmcmVjdWVuY2lhLCAob3BjaW9uYWwpIFRhYmxhcyBjcnV6YWRhcywgKDItMykgR3LDoWZpY29zIGRlIGRhdG9zIGN1YWxpdGF0aXZvcyB5IGN1YW50aXRhdGl2b3MsIGFzw60gY29tbyAoMi0zKSBHcsOhZmljb3MgZGUgZGlzcGVyc2nDs24uCgojIyMgKkFuYWxpc2lzIEVzdGFkaXN0aWNvIERlc2NyaXB0aXZvKgpgYGB7cn0KI2Rlc2NyaWJlKGJkMSkKYGBgCkZ1bmNpw7NuIG5vIHBvc2libGUgcG9yIGxhIHZlcnNpw7NuIHF1ZSBzZSB0aWVuZSBlbiBSCgojIyMjIFRhYmxhIGRlIEZyZWN1ZW5jaWEgCmBgYHtyfQojaW5zdGFsbC5wYWNrYWdlcygiZXBpRGlzcGxheSIpCmxpYnJhcnkoZXBpRGlzcGxheSkKdGFiMTwtdGFibGUoYmQxJENMSUVOVEUsIGJkMSRUSUVNUE8uLkNBTElEQUQpICMgQSB3aWxsIGJlIHJvd3MsIEIgd2lsbCBiZSBjb2x1bW5zCnRhYjEKcHJvcC50YWJsZSh0YWIxLCAyKSAjIGNvbHVtbiBwZXJjZW50YWdlcwpgYGAKCiMjIyMgR3JhZmljYSBDdWFsaXRhdGl2YQpgYGB7cn0KYmQyIDwtIHRhYmxlKGJkMSRDTElFTlRFKQpiZDIgPC0gcHJvcC50YWJsZShiZDIpCmJkMgoKYmFycGxvdChiZDIsIHhsYWI9J0NsaWVudGUnLAogICAgICAgIHlsYWI9J0ZyZWN1ZW5jaWEgUmVsYXRpdmEnLCBsYXM9MywgY29sPSJibHVlMSIpCmBgYAoKIyMjIyBHcmFmaWNhIEN1YW50aXRhdGl2YQpgYGB7cn0KYmQzPC1zdWJzZXQoYmQxLHNlbGVjdD0tYyhMYW1pbmFzLlByb2Nlc2FkYXMsRGF0ZSwgVE1PLi5NSU4uLCBQSUVaQVMuUC4uRy4gKSkKc3RyKGJkMykKcGxvdChiZDMsIG1haW4gPSAiR3JhZmljYSBDdWFudGl0YXRpdmEiKQpgYGAKCiMjIyMgR3JhZmljYSBEaXNwZXJzacOzbgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoYmQxLCBhZXMoeD1USUVNUE8uLkNBTElEQUQgLCB5PUNMSUVOVEUpKSArIAogIGdlb21fcG9pbnQoc2hhcGU9MTksIHNpemU9MykgKyBsYWJzKHRpdGxlID0gIlJlbGFjacOzbiBlbnRyZSBUaWVtcG8gQ2FsaWRhZCB5IENsaWVudGUiLGNhcHRpb24gPSJGT1JNIFByb2R1Y2Npw7NuIix4PSJUaWVtcG8gQ2FsaWRhZCIsIHk9IkNMaWVudGVzIikgKyB0aGVtZV9jbGFzc2ljKCkKYGBgCgojIyMjIEdyYWZpY2EgZGUgRGlzcGVyc2nDs24gUmVsYWNpw7NuIENsaWVudGUgeSBQaWV6YXMgKFByb2R1Y2Npw7NuKQpgYGB7cn0KcGxvdCh4ID0gYmQxJENMSUVOVEUsIHkgPSBiZDEkUElFWkFTLlAuLkcuLCBtYWluID0gIkdyYWZpY2EgRGlzcGVyc2nDs24iLCB4bGFiID0gIkNMaWVudGUiLCB5bGFiID0gIlByb2R1Y2Npw7NuIiwgbGFzPTMpCgpgYGAKCiMjIFByb3B1ZXN0YXMKQUwgYW5hbGl6YXIgbGEgYmFzZSBkZSBEYXRvcyBvYnR1dmUgaW5mb3JtYWNpw7NuIGJhc3RhbnRlIGludGVyZXNhbnRlLCB5IGJhc2FkbyBlbiBlc3RlIGFuYWxpc2lzIGVzIHF1ZSByZWFsaWNlIGxhIHNpZ3VpZW50ZSBwcm9wdWVzdGEgcGFyYSBGT1JNOgoKMS4gUmVhbGl6YXIgdW4gbnVldm8gZGVwYXJ0YW1lbnRvIGVuZm9jYWRvIGFsIGN1bXBsaW1pZW50byB5IGJ1ZW4gbW9uaXRvcmVvIGRlIGxvcyBwZWRpZG9zIGRlIGxvcyBwcmluY2lwYWxlcyBjbGllbnRlcywgZXN0byBjb24gZWwgcHJvcG9zaXRvIGRlIGRhciBtYXlvciBhdGVuY2nDs24uIEF1bmFkbyBhIGVzdG8sIHRhbWJpw6luIGVuZm9jYXJzZSBlbiBsb3MgY2xpZW50ZXMgc2VjdW5kYXJpb3MgaW1wdWxzYW5kbyBlbCBtZWpvcmFyIGxhIGNhbGlkYWQgZGUgc2VydmljaW8geSBhdGVuY2nDs24sIGhhY2llbmRvIHF1ZSBlc3RvcyBzZWFuIG3DoXMgZnJlY3VlbnRlcyBzdXMgcGVkaWRvcy4gCgojIyAqNi4gSW5jbHV5ZSB1bmEgYnJldmUgcmVmbGV4acOzbioKClBhcmEgcG9kZXIgbGxldmFyIGEgY2FibyBjb3JyZWN0YW1lbnRlIGVsIGFuYWxpc2lzIGRlIGxhIGJhc2UgZGUgZGF0b3MgdHV2ZSBxdWUgbGxldmFyIGEgY2FibyBsb3Mgc2lndWllbnRlcyBwYXNvcywgY29uIGVsIGZpbiBkZSBwb2RlciB0ZW5lciB1bmEgYmFzZSBkZSBkYXRvcyBsaW1waWE6CgoxLiBDaGVjYXIgYmFzZSBkZSBEYXRvcyBlbiBlbCBleGNlbCB5IG1vZGlmaWNhciBlbCBmb3JtYXRvIGRlIHJlZ2lzdHJvcy4gCjIuIEV4cG9ydGFyIGJhc2UgZGUgZGF0b3MgCjMuIEVudGVuZGVyIGxhIGJhc2UgZGUgZGF0b3MKNC4gSWRlbnRpZmljYXIgbGFzIGRpZmVyZW50ZXMgdmFyaWFibGVzIHkgcmVnaXN0cm9zLCBhc8OtIG1pc21vIGRpZmVyZW5jaWFyIGxvcyB0aXBvcyBkZWwgdmFyaWFibGVzIGp1bnRvIGNvbiBzdSBlc2NhbGEgZGUgbWVkaWRhLgo0LiBMaW1waWV6YSBjb24gaGVycmFtaWVudGEgZGUgZGF0b3MgcGFyYSBzZXIgbcOhcyBlZmljYXogeSByYXBpZG8gcXVlIG1hbnVhbG1lbnRlIGVuIEV4Y2VsLiAKNS4gUmVhbGl6YWNpw7NuIGRlIGFuYWxpc2lzIGRlc2NyaXB0aXZvIGRlIGxhIGJhc2UgZGUgZGF0b3MgKFRvbWFyIGVuIGN1ZW50YSBsYSBmdW5jacOzbiBEZXNjcmliZSB5IHRlbmVyIGFjdHVhbGl6YWRvIFIpLCB5IHJlYWxpemFyIHVuYSB0YWJsYSBkZSBmcmVjdWVuY2lhIGRlIGxvcyBkYXRvcy4gCjYuIEhhY2VyIGdyYWZpY2FzIGNvbiBkaXZlcnNhcyB2YXJpYWJsZXMgcGFyYSB2ZXIgc3UgY29tcG9ydGFtaWVudG8geSBwb2RlciBvYnRlbmVyIGluZm9ybWFjacOzbiBpbXBvcnRhbnRlIHBhcmEgYXBvcnRhciBhIGxhIGVtcHJlc2EuIAoKQ29uIHRvZG9zIGVzdG9zIHBhc28gZW50ZW5kw60gbGEgaW1wb3J0YW5jaWEgZGUgdGVuZXIgY3VpZGFkbyBjb24gbG9zIGRpc3RpbnRvcyBjb2RpZ29zIHkgZXN0YXIgYXRlbnRvIHBhcmEgbm8gdGVuZXIgZXJyb3JlcyB5IGxsZWdhciBhbCByZXN1bHRhZG8gZXNwZXJhZG8gY29uIHVuIGFuYWxpc2lzIHByZWNpc28geSBkZSB2YWxvciBwYXJhIGxhIGVtcHJlc2EuIAo=