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.

Minería de datos.

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.

1. Limpieza del campo Survived de tal manera que solo tenga los valores numéricos 1 o 0.

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

2. Limpieza del campo Pclase, solo tendrá valores numéricos del 1 al 3.

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

3. Separación del campo CP_Name en dos:

i. CP: solo los primeros 5 dígitos en formato numérico.
ii. Nombre: debe contener solo letras, sin acentos y todo en mayúscula. En los casos donde venga un nombre entre paréntesis se debe dejar solo este nombre, por ejemplo “63196_Mrs. (Mary D Kingcome) Hewlett” solo debe quedar “Mary D kingcome”.

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"

4. Homologar el campo Sex, solo debe tener 2 categorías, M y F, en mayúsculas.

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.

5. Cambio del campo Age, solo tendrá datos numéricos tipo entero, donde lo redondearemos al menor entero.

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

6. Quitar los datos especiales del campo Fare, de tal manera que solo queden datos numéricos decimales.

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

7. Segmentación de la variable FROM.TO.LUGGAGE.PET de tal forma que:

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.