
Leer base de datos
library(readxl)
data <- read_excel("Renuncia_Datos_SemanaCierreEnfoque_LIT.xlsx")
summary(data)
## renuncia edad viaje departamento
## Length:1470 Min. :18.00 Length:1470 Length:1470
## Class :character 1st Qu.:30.00 Class :character Class :character
## Mode :character Median :36.00 Mode :character Mode :character
## Mean :36.92
## 3rd Qu.:43.00
## Max. :60.00
##
## distanciacasa grado genero nivellaboral
## Min. : 1.000 Min. :1.000 Length:1470 Min. :1.000
## 1st Qu.: 2.000 1st Qu.:2.000 Class :character 1st Qu.:1.000
## Median : 7.000 Median :3.000 Mode :character Median :2.000
## Mean : 9.193 Mean :2.913 Mean :2.064
## 3rd Qu.:14.000 3rd Qu.:4.000 3rd Qu.:3.000
## Max. :29.000 Max. :5.000 Max. :5.000
## NA's :2 NA's :2
## satisfaccion estatus sueldo desemp
## Min. :1.000 Length:1470 Min. : 1009 Min. :3.000
## 1st Qu.:2.000 Class :character 1st Qu.: 2911 1st Qu.:3.000
## Median :3.000 Mode :character Median : 4907 Median :3.000
## Mean :2.728 Mean : 6505 Mean :3.154
## 3rd Qu.:4.000 3rd Qu.: 8380 3rd Qu.:3.000
## Max. :4.000 Max. :19999 Max. :4.000
## NA's :1 NA's :5 NA's :45
## capacitacion balancevida antiguedad antiguedadpuesto
## Min. :0.000 Min. :1.000 Min. : 0.00 Min. : 0.000
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.: 3.00 1st Qu.: 2.000
## Median :3.000 Median :3.000 Median : 5.00 Median : 3.000
## Mean :2.799 Mean :2.761 Mean : 7.01 Mean : 4.228
## 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.: 9.00 3rd Qu.: 7.000
## Max. :6.000 Max. :4.000 Max. :40.00 Max. :18.000
## NA's :1 NA's :3 NA's :1 NA's :1
## promocion tiempojefe
## Min. : 0.00 Min. : 0.000
## 1st Qu.: 0.00 1st Qu.: 2.000
## Median : 1.00 Median : 3.000
## Mean : 2.19 Mean : 4.123
## 3rd Qu.: 3.00 3rd Qu.: 7.000
## Max. :15.00 Max. :17.000
## NA's :3
Identificar valores nulos
missing_values = colSums(is.na(data))
missing_values
## renuncia edad viaje departamento
## 0 0 48 7
## distanciacasa grado genero nivellaboral
## 2 2 43 0
## satisfaccion estatus sueldo desemp
## 1 17 5 45
## capacitacion balancevida antiguedad antiguedadpuesto
## 1 3 1 1
## promocion tiempojefe
## 3 0
Imputar valores faltantes con el promedio de cada columna
promedio_distancia <- mean(data$distanciacasa, na.rm = TRUE)
data$distanciacasa <- ifelse(is.na(data$distanciacasa), promedio_distancia, data$distanciacasa)
promedio_grado <- mean(data$grado, na.rm = TRUE)
data$grado <- ifelse(is.na(data$grado), promedio_grado, data$grado)
promedio_satisfaccion <- mean(data$satisfaccion, na.rm = TRUE)
data$satisfaccion <- ifelse(is.na(data$satisfaccion), promedio_satisfaccion, data$satisfaccion)
promedio_sueldo <- mean(data$sueldo, na.rm = TRUE)
data$sueldo <- ifelse(is.na(data$sueldo), promedio_sueldo, data$sueldo)
promedio_desemp <- mean(data$desemp, na.rm = TRUE)
data$desemp <- ifelse(is.na(data$desemp), promedio_desemp, data$desemp)
promedio_capacitacion <- mean(data$capacitacion, na.rm = TRUE)
data$capacitacion <- ifelse(is.na(data$capacitacion), promedio_capacitacion, data$capacitacion)
promedio_balancevida <- mean(data$balancevida, na.rm = TRUE)
data$balancevida <- ifelse(is.na(data$balancevida), promedio_balancevida, data$balancevida)
promedio_antiguedad <- mean(data$antiguedad, na.rm = TRUE)
data$antiguedad <- ifelse(is.na(data$antiguedad), promedio_antiguedad, data$antiguedad)
promedio_antiguedadpuesto <- mean(data$antiguedadpuesto, na.rm = TRUE)
data$antiguedadpuesto <- ifelse(is.na(data$antiguedadpuesto), promedio_antiguedadpuesto, data$antiguedadpuesto)
promedio_promocion <- mean(data$promocion, na.rm = TRUE)
data$promocion <- ifelse(is.na(data$promocion), promedio_promocion, data$promocion)
Revisar nuevamente datos faltantes
missing_values = colSums(is.na(data))
missing_values
## renuncia edad viaje departamento
## 0 0 48 7
## distanciacasa grado genero nivellaboral
## 0 0 43 0
## satisfaccion estatus sueldo desemp
## 0 17 0 0
## capacitacion balancevida antiguedad antiguedadpuesto
## 0 0 0 0
## promocion tiempojefe
## 0 0
Obtener sueldo promedio
promedio_sueldo <- mean(data$sueldo, na.rm=TRUE)
promedio_sueldo
## [1] 6505.149
data$viaje <- ifelse(is.na(data$viaje), "3", data$viaje)
data$departamento <- ifelse(is.na(data$departamento), "1", data$departamento)
data$genero <- ifelse(is.na(data$genero), "1", data$genero)
data$estatus <- ifelse(is.na(data$estatus), "1", data$estatus)
Revisar nuevamente datos faltantes de columnas cualitativas
missing_values = colSums(is.na(data))
missing_values
## renuncia edad viaje departamento
## 0 0 0 0
## distanciacasa grado genero nivellaboral
## 0 0 0 0
## satisfaccion estatus sueldo desemp
## 0 0 0 0
## capacitacion balancevida antiguedad antiguedadpuesto
## 0 0 0 0
## promocion tiempojefe
## 0 0
Mostrar base de datos ya limpia
summary(data)
## renuncia edad viaje departamento
## No:1233 Min. :18.00 Length:1470 Length:1470
## Si: 237 1st Qu.:30.00 Class :character Class :character
## Median :36.00 Mode :character Mode :character
## Mean :36.92
## 3rd Qu.:43.00
## Max. :60.00
## distanciacasa grado genero nivellaboral
## Min. : 1.000 Min. :1.000 Length:1470 Min. :1.000
## 1st Qu.: 2.000 1st Qu.:2.000 Class :character 1st Qu.:1.000
## Median : 7.000 Median :3.000 Mode :character Median :2.000
## Mean : 9.193 Mean :2.913 Mean :2.064
## 3rd Qu.:14.000 3rd Qu.:4.000 3rd Qu.:3.000
## Max. :29.000 Max. :5.000 Max. :5.000
## satisfaccion estatus sueldo desemp
## Min. :1.000 Length:1470 Min. : 1009 Min. :3.000
## 1st Qu.:2.000 Class :character 1st Qu.: 2915 1st Qu.:3.000
## Median :3.000 Mode :character Median : 4933 Median :3.000
## Mean :2.728 Mean : 6505 Mean :3.154
## 3rd Qu.:4.000 3rd Qu.: 8368 3rd Qu.:3.000
## Max. :4.000 Max. :19999 Max. :4.000
## capacitacion balancevida antiguedad antiguedadpuesto
## Min. :0.000 Min. :1.000 Min. : 0.00 Min. : 0.000
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.: 3.00 1st Qu.: 2.000
## Median :3.000 Median :3.000 Median : 5.00 Median : 3.000
## Mean :2.799 Mean :2.761 Mean : 7.01 Mean : 4.228
## 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.: 9.00 3rd Qu.: 7.000
## Max. :6.000 Max. :4.000 Max. :40.00 Max. :18.000
## promocion tiempojefe
## Min. : 0.00 Min. : 0.000
## 1st Qu.: 0.00 1st Qu.: 2.000
## Median : 1.00 Median : 3.000
## Mean : 2.19 Mean : 4.123
## 3rd Qu.: 3.00 3rd Qu.: 7.000
## Max. :15.00 Max. :17.000
Exportar base de datos Final
#install.packages("writexl")
library(writexl)
write_xlsx(data, "NutrionalTech_Limpio.xlsx")
LS0tDQp0aXRsZTogIkxpbXBpZXphIGRlIGJhc2UgZGUgZGF0b3MiDQphdXRob3I6ICJFcXVpcG8gNiINCmRhdGU6ICJPY3R1YnJlIDIwMjMiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KLS0tDQo8aW1nIHNyYz0iQzpcXFVzZXJzXFw4NTE3MTA3NVxcRGVza3RvcFxcTWFyaWFuYVxcVGVjXFxTVFxcTi5wbmciPg0KDQojIExlZXIgYmFzZSBkZSBkYXRvcw0KYGBge3J9DQpsaWJyYXJ5KHJlYWR4bCkNCmRhdGEgPC0gcmVhZF9leGNlbCgiUmVudW5jaWFfRGF0b3NfU2VtYW5hQ2llcnJlRW5mb3F1ZV9MSVQueGxzeCIpDQpzdW1tYXJ5KGRhdGEpDQpgYGANCg0KIyBUcmFuc2Zvcm1hciB2YXJpYWJsZXMNCmBgYHtyfQ0KZGF0YSRyZW51bmNpYSA8LSBhcy5mYWN0b3IoZGF0YSRyZW51bmNpYSkNCmRhdGEkdmlhamUgPC0gYXMuZmFjdG9yKGRhdGEkdmlhamUpDQpkYXRhJGRlcGFydGFtZW50byA8LSBhcy5mYWN0b3IoZGF0YSRkZXBhcnRhbWVudG8pDQpkYXRhJGdlbmVybyA8LSBhcy5mYWN0b3IoZGF0YSRnZW5lcm8pDQpkYXRhJGVzdGF0dXMgPC0gYXMuZmFjdG9yKGRhdGEkZXN0YXR1cykNCmRhdGEkcmVudW5jaWEgPC0gYXMuZmFjdG9yKGRhdGEkcmVudW5jaWEpDQpzdW1tYXJ5KGRhdGEpDQpgYGANCg0KIyBJZGVudGlmaWNhciB2YWxvcmVzIG51bG9zDQpgYGB7cn0NCm1pc3NpbmdfdmFsdWVzID0gY29sU3Vtcyhpcy5uYShkYXRhKSkNCm1pc3NpbmdfdmFsdWVzDQoNCmBgYA0KDQojIEltcHV0YXIgdmFsb3JlcyBmYWx0YW50ZXMgY29uIGVsIHByb21lZGlvIGRlIGNhZGEgY29sdW1uYQ0KYGBge3J9DQoNCnByb21lZGlvX2Rpc3RhbmNpYSA8LSBtZWFuKGRhdGEkZGlzdGFuY2lhY2FzYSwgbmEucm0gPSBUUlVFKQ0KZGF0YSRkaXN0YW5jaWFjYXNhIDwtIGlmZWxzZShpcy5uYShkYXRhJGRpc3RhbmNpYWNhc2EpLCBwcm9tZWRpb19kaXN0YW5jaWEsIGRhdGEkZGlzdGFuY2lhY2FzYSkNCg0KcHJvbWVkaW9fZ3JhZG8gPC0gbWVhbihkYXRhJGdyYWRvLCBuYS5ybSA9IFRSVUUpDQpkYXRhJGdyYWRvIDwtIGlmZWxzZShpcy5uYShkYXRhJGdyYWRvKSwgcHJvbWVkaW9fZ3JhZG8sIGRhdGEkZ3JhZG8pDQoNCnByb21lZGlvX3NhdGlzZmFjY2lvbiA8LSBtZWFuKGRhdGEkc2F0aXNmYWNjaW9uLCBuYS5ybSA9IFRSVUUpDQpkYXRhJHNhdGlzZmFjY2lvbiA8LSBpZmVsc2UoaXMubmEoZGF0YSRzYXRpc2ZhY2Npb24pLCBwcm9tZWRpb19zYXRpc2ZhY2Npb24sIGRhdGEkc2F0aXNmYWNjaW9uKQ0KDQpwcm9tZWRpb19zdWVsZG8gPC0gbWVhbihkYXRhJHN1ZWxkbywgbmEucm0gPSBUUlVFKQ0KZGF0YSRzdWVsZG8gPC0gaWZlbHNlKGlzLm5hKGRhdGEkc3VlbGRvKSwgcHJvbWVkaW9fc3VlbGRvLCBkYXRhJHN1ZWxkbykNCg0KcHJvbWVkaW9fZGVzZW1wIDwtIG1lYW4oZGF0YSRkZXNlbXAsIG5hLnJtID0gVFJVRSkNCmRhdGEkZGVzZW1wIDwtIGlmZWxzZShpcy5uYShkYXRhJGRlc2VtcCksIHByb21lZGlvX2Rlc2VtcCwgZGF0YSRkZXNlbXApDQoNCnByb21lZGlvX2NhcGFjaXRhY2lvbiA8LSBtZWFuKGRhdGEkY2FwYWNpdGFjaW9uLCBuYS5ybSA9IFRSVUUpDQpkYXRhJGNhcGFjaXRhY2lvbiA8LSBpZmVsc2UoaXMubmEoZGF0YSRjYXBhY2l0YWNpb24pLCBwcm9tZWRpb19jYXBhY2l0YWNpb24sIGRhdGEkY2FwYWNpdGFjaW9uKQ0KDQpwcm9tZWRpb19iYWxhbmNldmlkYSA8LSBtZWFuKGRhdGEkYmFsYW5jZXZpZGEsIG5hLnJtID0gVFJVRSkNCmRhdGEkYmFsYW5jZXZpZGEgPC0gaWZlbHNlKGlzLm5hKGRhdGEkYmFsYW5jZXZpZGEpLCBwcm9tZWRpb19iYWxhbmNldmlkYSwgZGF0YSRiYWxhbmNldmlkYSkNCg0KcHJvbWVkaW9fYW50aWd1ZWRhZCA8LSBtZWFuKGRhdGEkYW50aWd1ZWRhZCwgbmEucm0gPSBUUlVFKQ0KZGF0YSRhbnRpZ3VlZGFkIDwtIGlmZWxzZShpcy5uYShkYXRhJGFudGlndWVkYWQpLCBwcm9tZWRpb19hbnRpZ3VlZGFkLCBkYXRhJGFudGlndWVkYWQpDQoNCnByb21lZGlvX2FudGlndWVkYWRwdWVzdG8gPC0gbWVhbihkYXRhJGFudGlndWVkYWRwdWVzdG8sIG5hLnJtID0gVFJVRSkNCmRhdGEkYW50aWd1ZWRhZHB1ZXN0byA8LSBpZmVsc2UoaXMubmEoZGF0YSRhbnRpZ3VlZGFkcHVlc3RvKSwgcHJvbWVkaW9fYW50aWd1ZWRhZHB1ZXN0bywgZGF0YSRhbnRpZ3VlZGFkcHVlc3RvKQ0KDQpwcm9tZWRpb19wcm9tb2Npb24gPC0gbWVhbihkYXRhJHByb21vY2lvbiwgbmEucm0gPSBUUlVFKQ0KZGF0YSRwcm9tb2Npb24gPC0gaWZlbHNlKGlzLm5hKGRhdGEkcHJvbW9jaW9uKSwgcHJvbWVkaW9fcHJvbW9jaW9uLCBkYXRhJHByb21vY2lvbikNCg0KYGBgDQoNCiMgUmV2aXNhciBudWV2YW1lbnRlIGRhdG9zIGZhbHRhbnRlcw0KYGBge3J9DQptaXNzaW5nX3ZhbHVlcyA9IGNvbFN1bXMoaXMubmEoZGF0YSkpDQptaXNzaW5nX3ZhbHVlcw0KYGBgDQoNCiMgT2J0ZW5lciBzdWVsZG8gcHJvbWVkaW8NCmBgYHtyfQ0KcHJvbWVkaW9fc3VlbGRvIDwtIG1lYW4oZGF0YSRzdWVsZG8sIG5hLnJtPVRSVUUpDQpwcm9tZWRpb19zdWVsZG8NCmBgYA0KDQpgYGB7cn0NCmRhdGEkdmlhamUgPC0gaWZlbHNlKGlzLm5hKGRhdGEkdmlhamUpLCAiMyIsIGRhdGEkdmlhamUpDQpkYXRhJGRlcGFydGFtZW50byA8LSBpZmVsc2UoaXMubmEoZGF0YSRkZXBhcnRhbWVudG8pLCAiMSIsIGRhdGEkZGVwYXJ0YW1lbnRvKQ0KZGF0YSRnZW5lcm8gPC0gaWZlbHNlKGlzLm5hKGRhdGEkZ2VuZXJvKSwgIjEiLCBkYXRhJGdlbmVybykNCmRhdGEkZXN0YXR1cyA8LSBpZmVsc2UoaXMubmEoZGF0YSRlc3RhdHVzKSwgIjEiLCBkYXRhJGVzdGF0dXMpDQoNCmBgYA0KDQojIFJldmlzYXIgbnVldmFtZW50ZSBkYXRvcyBmYWx0YW50ZXMgZGUgY29sdW1uYXMgY3VhbGl0YXRpdmFzDQpgYGB7cn0NCm1pc3NpbmdfdmFsdWVzID0gY29sU3Vtcyhpcy5uYShkYXRhKSkNCm1pc3NpbmdfdmFsdWVzDQpgYGANCiMgTW9zdHJhciBiYXNlIGRlIGRhdG9zIHlhIGxpbXBpYSANCmBgYHtyfQ0Kc3VtbWFyeShkYXRhKQ0KYGBgDQojIEV4cG9ydGFyIGJhc2UgZGUgZGF0b3MgRmluYWwNCmBgYHtyfQ0KI2luc3RhbGwucGFja2FnZXMoIndyaXRleGwiKQ0KbGlicmFyeSh3cml0ZXhsKQ0Kd3JpdGVfeGxzeChkYXRhLCAiTnV0cmlvbmFsVGVjaF9MaW1waW8ueGxzeCIpDQpgYGANCg0KDQoNCg0KDQo=