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")

Limpieza

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

Edad

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

Género

Sex_ =factor(titanic$Sex)
dummies_Sex =model.matrix(~Sex_)
View(dummies_Sex)

0 - Mujer 1 - Hombre

Embarked

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

Unión

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

Nombre

Se elimina ya que no será usado en el analisis

titanic$Name <- NULL

Guardar base limpia

write.csv(titanic,"Titanic_clean.csv")