A continuación, se presenta la limpieza y manipulación de la base de
datostitanic, con el fin de prepararla para un uso
posterior
setwd("C:/Users/esme2/OneDrive/Escritorio/TEC/Semestre 6-Tec/Inicadores y riesgos con vision estrategica/Modulo 3")
titanic<-read.csv("Titanic Limpieza.csv")
View(titanic)
Vamos a ver cuanto valores nulos hay en cada columna para ver cuales son convenientes de eliminar
colSums(is.na(titanic))
## PassengerId Survived Pclass Name Sex Age
## 0 0 0 0 0 177
## SibSp Parch Ticket Fare Cabin Embarked
## 0 0 0 0 0 0
Se revisó la base y manualmente nos dimos cuenta de que tiene muchos datos vacios pero R no lo detecta porque no es lo mismo un dato NULL que uno vacío, entonces la columnase elimina manualmente. Además, la columna “Cabina” no es una variable con mucho peso dentro del análisis.
titanic$Cabin <- NULL
Como la columna de Ticket tampoco nos sirve de mucho, se elimina
titanic$Ticket <- NULL
Se podrian eliminar los 177 datos NULL de esta variable, pero considero que no es lo correcto porque perdería su función en las otras variables. Una solución podría ser sacar la media de los valores y aplicarla en el lugar de los valores nulos A pesar de que puede que se trate de un valor erroneo, es una forma de no cambiar mucho el modelo
Summary: no se puede sacar la media directa en la edad por los valores nulos, entonces con la función summary tenemos un resumen de las variables en donde podemos ver que la media de la variable Edad es de 29 años con algunos meses.
summary(titanic)
## PassengerId Survived Pclass Name
## Min. : 1.0 Min. :0.0000 Min. :1.000 Length:891
## 1st Qu.:223.5 1st Qu.:0.0000 1st Qu.:2.000 Class :character
## Median :446.0 Median :0.0000 Median :3.000 Mode :character
## Mean :446.0 Mean :0.3838 Mean :2.309
## 3rd Qu.:668.5 3rd Qu.:1.0000 3rd Qu.:3.000
## Max. :891.0 Max. :1.0000 Max. :3.000
##
## Sex Age SibSp Parch
## Length:891 Min. : 0.42 Min. :0.000 Min. :0.0000
## Class :character 1st Qu.:20.12 1st Qu.:0.000 1st Qu.:0.0000
## Mode :character Median :28.00 Median :0.000 Median :0.0000
## Mean :29.70 Mean :0.523 Mean :0.3816
## 3rd Qu.:38.00 3rd Qu.:1.000 3rd Qu.:0.0000
## Max. :80.00 Max. :8.000 Max. :6.0000
## NA's :177
## Fare Embarked
## Min. : 0.00 Length:891
## 1st Qu.: 7.91 Class :character
## Median : 14.45 Mode :character
## Mean : 32.20
## 3rd Qu.: 31.00
## Max. :512.33
##
summary(titanic$Age)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.42 20.12 28.00 29.70 38.00 80.00 177
titanic$Age[is.na(titanic$Age)]<-29.70
Vuelvo a ejecutar el comando de la linea 8 para asegurarme de que se hayan eliminado los valores null
Nota: en caso de que hubiera algun valor null (menos del 1% del total de valores), se podría usar la función na.omit para omitirlos
Variables Dummies: convierten la info a valores booleanos
Sex_ =factor(titanic$Sex)
dummies_Sex =model.matrix(~Sex_)
View(dummies_Sex)
0 - Mujer 1 - Hombre
Embarked_ =factor(titanic$Embarked)
dummies_Embarked =model.matrix(~Embarked_)
View(dummies_Embarked)
En la columna en donde este el 1 es en donde embarcó la persona
Las nuevas columnas creadas estan en data sets separados, entonces hay que unirlos
titanic <- data.frame(titanic,dummies_Sex[,2],dummies_Embarked[,2:4])
Los numeros dentro de los corchetes son las columnas que se necesitan de los data sets creados La , significa que quiero todas las filas
titanic$Sex <- titanic$dummies_Sex...2.
titanic$dummies_Sex...2. <- NULL
titanic$Embarked <- NULL
Se elimina ya que no será usado en el analisis
titanic$Name <- NULL
write.csv(titanic,"Titanic_clean.csv")