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