Hagamos un análisis exploratorio rápido a los datos, para ver a qué nos vamos a encontrar.
## Survived.Pclass.CP_Name.Sex.Age.Siblings.Spouses.Aboard.Parents.Children.Aboard.Fare.FROM.TO.LUGGAGE.PET
## 1 B0|3|81912_Mr. Owen Harris Braund|M|22 years|1|0|7.25 \xa3|From Southampton to Queenstown/1-no
## 2 e1|_1|32137_Mrs. John Bradley (Florence Briggs Thayer) Cumings|female|38 years|1|0|71.2833 \xa3|From Southampton to Queenstown/0-Si
## 3 e1|3 _|43466_Miss. Laina Heikkinen|female|26 years|0|0|7.925 \xa3|From Southampton to Cherburgo/0-no
## 4 e1|_1|89597_Mrs. Jacques Heath (Lily May Peel) Futrelle|female|35 years|1|0|53.1 \xa3|From Southampton to Cherburgo/0-Si
## 5 B0|3|95148_Mr. William Henry Allen|M|35 years|0|0|8.05 \xa3|From Southampton to Queenstown/0-Si
## 6 B0|3|94683_Mr. James Moran|M|27 years|0|0|8.4583 \xa3|From Southampton to New York/1-no
La base de datos está muy cruda, necesitando muchos cambios, entonces empecemos. Primero, agregaremos las columnas correspondientes de forma separada.
## Survived Pclass CP_Name
## 1 B0 3 81912_Mr. Owen Harris Braund
## 2 e1 _1 32137_Mrs. John Bradley (Florence Briggs Thayer) Cumings
## 3 e1 3 _ 43466_Miss. Laina Heikkinen
## 4 e1 _1 89597_Mrs. Jacques Heath (Lily May Peel) Futrelle
## 5 B0 3 95148_Mr. William Henry Allen
## 6 B0 3 94683_Mr. James Moran
## Sex Age Siblings/Spouses Aboard Parents/Children Aboard Fare
## 1 M 22 years 1 0 7.25 \xa3
## 2 female 38 years 1 0 71.2833 \xa3
## 3 female 26 years 0 0 7.925 \xa3
## 4 female 35 years 1 0 53.1 \xa3
## 5 M 35 years 0 0 8.05 \xa3
## 6 M 27 years 0 0 8.4583 \xa3
## FROM.TO.LUGGAGE.PET
## 1 From Southampton to Queenstown/1-no
## 2 From Southampton to Queenstown/0-Si
## 3 From Southampton to Cherburgo/0-no
## 4 From Southampton to Cherburgo/0-Si
## 5 From Southampton to Queenstown/0-Si
## 6 From Southampton to New York/1-no
Una vez traducida nuestra base de datos a R y separadas en sus respectivas columnas, hagamos los siguientes pasos.
Convirtamos las variables de Parents/Children Aboard y Siblings/Spouses a tipo numérico.
En base a lo realizado en el chunk ‘r SibPar’, tenemos que:
## [1] "La variable Siblings/Spouses Aboard es: numeric , y la variable Parents/Children Aboard es: numeric"
Empecemos con el resto de las columnas.
Entonces, básicamente lo que haremos es eliminar aquellas letras B, e dependiendo de la que toque. Una vez hecho esto, tendremos caracteres en vez de números, entonces después de eliminar estas letras, pasemos nuestros caracteres a números.
Previa a la transformación, nuestro campo se ve tal que:
## [1] "B0" "e1" "e1" "e1" "B0" "B0"
Gracias a lo obtenido en el chunk ‘r Survived’, vemos que al limpiar la columna, solamente nos quedan los datos:
## Survived
## 1 0
## 2 1
Entonces, para esta lo que haremos es primero quitar sus signos que no nos importan, después de ésto quitaremos espacios para que solo nos queden los números para finalmente convertirlo a tipo de dato numérico.
Antes de hacer la limpieza, nuestro campo se ve de la siguiente forma:
## [1] "3" "_1" "3 _" "_1" "3" "3"
Ahora, gracias al chunk ‘r Pclass’, vemos que al limpiar el campo y después de quitar los signos los únicos resultados son:
## Pclass
## 1 3
## 2 1
## 3 2
Previo a la separación de columnas, el campo se ve de la siguiente forma:
## [1] "81912_Mr. Owen Harris Braund"
## [2] "32137_Mrs. John Bradley (Florence Briggs Thayer) Cumings"
## [3] "43466_Miss. Laina Heikkinen"
## [4] "89597_Mrs. Jacques Heath (Lily May Peel) Futrelle"
## [5] "95148_Mr. William Henry Allen"
## [6] "94683_Mr. James Moran"
Primero separemos en 2, en CP y Nombre, cosa que haremos gracias a que la separación de estas dos variables es “_“, entonces con lo realizado en el chunk ‘r CPName’ nos quedan las columnas separadas de la siguiente forma:
## CP Nombre
## 1 81912 Owen Harris Braund
## 2 32137 John Bradley (Florence Briggs Thayer) Cumings
## 3 43466 Laina Heikkinen
## 4 89597 Jacques Heath (Lily May Peel) Futrelle
## 5 95148 William Henry Allen
## 6 94683 James Moran
Una vez hecho esto, separemos los nombres como mencionamos con anterioridad.
## CP Nombre
## 1 81912 Owen Harris Braund
## 2 32137 Florence Briggs Thayer
## 3 43466 Laina Heikkinen
## 4 89597 Lily May Peel
## 5 95148 William Henry Allen
## 6 94683 James Moran
Por lo que, podemos confirmar que aquellos datos que tienen nombres entre paréntesis, han quedado modificados.
Una vez separados estos datos, convirtamos a CP como número tal que:
## [1] "La variable CP es de tipo: numeric"
Primero vemos con las variables distintas con las que nos estamos encontrando para después hacer los cambios:
## Sex
## 1 M
## 2 female
## 3 F
## 4 male
Entonces, con ayuda del chunk ‘r separacion’ tenemos que ahora las categorías son:
## Sex
## 1 M
## 2 F
Por lo que, de la mano de dplyr, hemos cambiado esta variable.
Después de hacer una exploración rápida tenemos que en la base hay 2 casos, donde nos dice ‘X years’ y ‘X years old’, así que quitaremos ambos casos de la columna, luego quitaremos espacios para finalmente volverlo dato numérico y finalmente tomar la función piso para redondearlo al menor entero.
Antes de la limpieza tenemos:
## [1] "22 years" "38 years" "26 years" "35 years" "35 years" "27 years"
Ahora, procedemos a la limpieza donde con lo realizado en el chunk ‘r Age’ nos resulta:
## [1] "La variable Age es de tipo: integer"
Y los datos quedaron de la siguiente forma:
## [1] 22 38 26 35 35 27
Tenemos que al ver la base de datos, al verla en Excel teníamos el símbolo de euros y al pasarlo a R se convirtió en xa3, entonces después de una investigación descubrimos que se debe a que hubo un cambio en la codificación para la moneda. Entonces lo que haremos es modificarla para que tengamos el formato de moneda y de ahí agarramos nuestros datos numéricos.
¿El por qué tenemos que cambiar la codificación? Porque de no hacerlo nos dará un error. Con ayuda del chunk ‘r Fare’, nos resulta:
## [1] "La variable Fare es de tipo: numeric"
## [1] 7 71 7 53 8 8
FROM: primera ciudad de donde parte
TO: la segunda ciudad, hacia donde se dirige
LUGGAGE: 1 si tiene equipaje, 0 si no.
PET: Si si cuenta con equipaje documentado, 0 si no.
La columna inicial (que eliminaremos posteriormente) se veía así:
## [1] "From Southampton to Queenstown/1-no" "From Southampton to Queenstown/0-Si"
## [3] "From Southampton to Cherburgo/0-no" "From Southampton to Cherburgo/0-Si"
## [5] "From Southampton to Queenstown/0-Si" "From Southampton to New York/1-no"
Y con el chunk ‘r luggPack’ lo resolvimos tal que:
## From To Luggage Pet
## 1 Southampton Queenstown 1 no
## 2 Southampton Queenstown 0 Si
## 3 Southampton Cherburgo 0 no
## 4 Southampton Cherburgo 0 Si
## 5 Southampton Queenstown 0 Si
## 6 Southampton New York 1 no
Así que, finalmente, primero veamos cómo teníamos la base inicial:
## Survived Pclass CP_Name
## 1 B0 3 81912_Mr. Owen Harris Braund
## 2 e1 _1 32137_Mrs. John Bradley (Florence Briggs Thayer) Cumings
## 3 e1 3 _ 43466_Miss. Laina Heikkinen
## 4 e1 _1 89597_Mrs. Jacques Heath (Lily May Peel) Futrelle
## 5 B0 3 95148_Mr. William Henry Allen
## 6 B0 3 94683_Mr. James Moran
## Sex Age Siblings/Spouses Aboard Parents/Children Aboard Fare
## 1 M 22 years 1 0 7.25 \xa3
## 2 female 38 years 1 0 71.2833 \xa3
## 3 female 26 years 0 0 7.925 \xa3
## 4 female 35 years 1 0 53.1 \xa3
## 5 M 35 years 0 0 8.05 \xa3
## 6 M 27 years 0 0 8.4583 \xa3
## FROM.TO.LUGGAGE.PET
## 1 From Southampton to Queenstown/1-no
## 2 From Southampton to Queenstown/0-Si
## 3 From Southampton to Cherburgo/0-no
## 4 From Southampton to Cherburgo/0-Si
## 5 From Southampton to Queenstown/0-Si
## 6 From Southampton to New York/1-no
Y ahora, veamos cuál fue nuestro trabajo final:
## Survived Pclass Sex Age Siblings/Spouses Aboard Parents/Children Aboard Fare
## 1 0 3 M 22 1 0 7
## 2 1 1 F 38 1 0 71
## 3 1 3 F 26 0 0 7
## 4 1 1 F 35 1 0 53
## 5 0 3 M 35 0 0 8
## 6 0 3 M 27 0 0 8
## CP Nombre From To Luggage Pet
## 1 81912 Owen Harris Braund Southampton Queenstown 1 no
## 2 32137 Florence Briggs Thayer Southampton Queenstown 0 Si
## 3 43466 Laina Heikkinen Southampton Cherburgo 0 no
## 4 89597 Lily May Peel Southampton Cherburgo 0 Si
## 5 95148 William Henry Allen Southampton Queenstown 0 Si
## 6 94683 James Moran Southampton New York 1 no
Pudiendo concluir que logramos hacer un buen análisis exploratorio de nuestra base de datos.