##================================================
## Reacomodo de tablas en lenguaje R
# Dr. Carlos Téllez Martínez
# Septiembre de 2016
# Tecnológico de Monterrey, Campus Guadalajara
# Materias:
## Diseño y Análisis de Experimentos
## Control Estadístico de Calidad
##================================================

# Lectura de datos
Tabla <- read.csv("~/OneDrive/Clases/Control Estadístico del Proceso/Material 2013/Tema 2/Videos R/Reshape de Tablas/Tabla.csv")
## Warning in read.table(file = file, header = header, sep = sep, quote =
## quote, : incomplete final line found by readTableHeader on '~/OneDrive/
## Clases/Control Estadístico del Proceso/Material 2013/Tema 2/Videos R/
## Reshape de Tablas/Tabla.csv'
Tabla
##   Detergente Lavadora_1 Lavadora_2 Lavadora_3
## 1          A         45         43         51
## 2          B         47         44         52
## 3          C         50         49         57
## 4          D         42         37         49
## Se requieren 3 columnas:
# 1. Detergente
# 2. Lavadoras
# 3. Respuesta

## Proceso de modificación de la tabla
# Comando reshape

Tabla2 <- reshape(data = Tabla, 
                  varying = c("Lavadora_1", "Lavadora_2", "Lavadora_3"), 
                  v.names = "Respuesta",
                  timevar = "Lavadora", 
                  times = c("Lavadora_1", "Lavadora_2", "Lavadora_3"), 
                  new.row.names = 1: 12, 
                  direction = "long")
Tabla2
##    Detergente   Lavadora Respuesta id
## 1           A Lavadora_1        45  1
## 2           B Lavadora_1        47  2
## 3           C Lavadora_1        50  3
## 4           D Lavadora_1        42  4
## 5           A Lavadora_2        43  1
## 6           B Lavadora_2        44  2
## 7           C Lavadora_2        49  3
## 8           D Lavadora_2        37  4
## 9           A Lavadora_3        51  1
## 10          B Lavadora_3        52  2
## 11          C Lavadora_3        57  3
## 12          D Lavadora_3        49  4
## Tabla reacomodada

## Para convertir datos en una tabla ancha
## Usaremos la base de datos Indometh
Indometh
##    Subject time conc
## 1        1 0.25 1.50
## 2        1 0.50 0.94
## 3        1 0.75 0.78
## 4        1 1.00 0.48
## 5        1 1.25 0.37
## 6        1 2.00 0.19
## 7        1 3.00 0.12
## 8        1 4.00 0.11
## 9        1 5.00 0.08
## 10       1 6.00 0.07
## 11       1 8.00 0.05
## 12       2 0.25 2.03
## 13       2 0.50 1.63
## 14       2 0.75 0.71
## 15       2 1.00 0.70
## 16       2 1.25 0.64
## 17       2 2.00 0.36
## 18       2 3.00 0.32
## 19       2 4.00 0.20
## 20       2 5.00 0.25
## 21       2 6.00 0.12
## 22       2 8.00 0.08
## 23       3 0.25 2.72
## 24       3 0.50 1.49
## 25       3 0.75 1.16
## 26       3 1.00 0.80
## 27       3 1.25 0.80
## 28       3 2.00 0.39
## 29       3 3.00 0.22
## 30       3 4.00 0.12
## 31       3 5.00 0.11
## 32       3 6.00 0.08
## 33       3 8.00 0.08
## 34       4 0.25 1.85
## 35       4 0.50 1.39
## 36       4 0.75 1.02
## 37       4 1.00 0.89
## 38       4 1.25 0.59
## 39       4 2.00 0.40
## 40       4 3.00 0.16
## 41       4 4.00 0.11
## 42       4 5.00 0.10
## 43       4 6.00 0.07
## 44       4 8.00 0.07
## 45       5 0.25 2.05
## 46       5 0.50 1.04
## 47       5 0.75 0.81
## 48       5 1.00 0.39
## 49       5 1.25 0.30
## 50       5 2.00 0.23
## 51       5 3.00 0.13
## 52       5 4.00 0.11
## 53       5 5.00 0.08
## 54       5 6.00 0.10
## 55       5 8.00 0.06
## 56       6 0.25 2.31
## 57       6 0.50 1.44
## 58       6 0.75 1.03
## 59       6 1.00 0.84
## 60       6 1.25 0.64
## 61       6 2.00 0.42
## 62       6 3.00 0.24
## 63       6 4.00 0.17
## 64       6 5.00 0.13
## 65       6 6.00 0.10
## 66       6 8.00 0.09
Tabla3 <- reshape(data = Indometh, 
                  v.names = "conc", 
                  idvar = "Subject", 
                  timevar = "time", 
                  direction = "wide")
Tabla3
##    Subject conc.0.25 conc.0.5 conc.0.75 conc.1 conc.1.25 conc.2 conc.3
## 1        1      1.50     0.94      0.78   0.48      0.37   0.19   0.12
## 12       2      2.03     1.63      0.71   0.70      0.64   0.36   0.32
## 23       3      2.72     1.49      1.16   0.80      0.80   0.39   0.22
## 34       4      1.85     1.39      1.02   0.89      0.59   0.40   0.16
## 45       5      2.05     1.04      0.81   0.39      0.30   0.23   0.13
## 56       6      2.31     1.44      1.03   0.84      0.64   0.42   0.24
##    conc.4 conc.5 conc.6 conc.8
## 1    0.11   0.08   0.07   0.05
## 12   0.20   0.25   0.12   0.08
## 23   0.12   0.11   0.08   0.08
## 34   0.11   0.10   0.07   0.07
## 45   0.11   0.08   0.10   0.06
## 56   0.17   0.13   0.10   0.09
## Reordenando Tabla 2
Tabla2 <- Tabla2[, -c(4)]
Tabla2
##    Detergente   Lavadora Respuesta
## 1           A Lavadora_1        45
## 2           B Lavadora_1        47
## 3           C Lavadora_1        50
## 4           D Lavadora_1        42
## 5           A Lavadora_2        43
## 6           B Lavadora_2        44
## 7           C Lavadora_2        49
## 8           D Lavadora_2        37
## 9           A Lavadora_3        51
## 10          B Lavadora_3        52
## 11          C Lavadora_3        57
## 12          D Lavadora_3        49
Tabla4 <- reshape(data = Tabla2, 
                  v.names = "Respuesta", 
                  idvar = "Detergente", 
                  timevar = "Lavadora", 
                  direction = "wide")
Tabla4
##   Detergente Respuesta.Lavadora_1 Respuesta.Lavadora_2
## 1          A                   45                   43
## 2          B                   47                   44
## 3          C                   50                   49
## 4          D                   42                   37
##   Respuesta.Lavadora_3
## 1                   51
## 2                   52
## 3                   57
## 4                   49