EncuestasIT

Encuestas IT

This is an R Markdown format used for publishing markdown documents to GitHub. When you click the Knit button all R code chunks are run and a markdown file (.md) suitable for publishing to GitHub is generated.

Preprocesado de datos

Para empezar vamos a trabajar con el documento txt para dejarlo ok.

# Levantamos el archico como un documento de texto
txtdata <- readLines(FILE_ENCUESTAS) 

# Quitamos todas las lineas en blanco, no tienen razon de ser en el archivo.
empty_lines = grepl('^\\s*$', txtdata)
txtdata = txtdata[! empty_lines]

# Quitamos los saltos de linea dentro de los comentarios
txtdata <- quitarSaltosLineaComentarios(txtdata)

# Quitamos los ", ," por ",," 
txtdata <- gsub(", ,", ",,", txtdata)
# y los ",  ," por ",,"
txtdata <- gsub(",  ,", ",,", txtdata)
# y los ", \r\n" por ","
txtdata <- gsub(", \r\n", ",\r\n", txtdata)
# y los ",  \r\n" por ","
txtdata <- gsub(",  \r\n", ",\r\n", txtdata)

# Quitamos los ",False, " y lo reemplazamos por ",False," (3 veces por si hay varios espacios)
txtdata <- gsub(",False, ", ",False,", txtdata)
txtdata <- gsub(",False,  ", ",False,", txtdata)
txtdata <- gsub(",False,   ", ",False,", txtdata)

# Quitamos los ",True, " y lo reemplazamos por ",True," (3 veces por si hay varios espacios)
txtdata <- gsub(",True, ", ",True,", txtdata)
txtdata <- gsub(",True,  ", ",True,", txtdata)
txtdata <- gsub(",True,   ", ",True,", txtdata)

# Quitamos los ", " y lo reemplazamos por " "
txtdata <- gsub(", ", " ", txtdata)

# Veamos cuantas lineas no tienen la cantidad de "," que esperamos que tengan
cantComasEsperadas <- cantidadComas(txtdata[1])
dataCantComas <- lapply(txtdata, cantidadComas)

# Buscamos los renglones que tienen más o menos comas de las esperadas
renglonesInconsistentes <- txtdata[dataCantComas != cantComasEsperadas]
renglonesConsistentes <- txtdata[dataCantComas == cantComasEsperadas]


# Cantidad de renglones inconsistentes: 
sprintf("Cantidad de renglones inconsistentes: %d", length(renglonesInconsistentes)) 
## [1] "Cantidad de renglones inconsistentes: 4016"
# Cantidad de renglones consistentes:
sprintf("Cantidad de renglones consistentes: %d", length(renglonesConsistentes)) 
## [1] "Cantidad de renglones consistentes: 22666"
# Cantidad de renglones total:
sprintf("Cantidad de renglones total: %d", length(txtdata)) 
## [1] "Cantidad de renglones total: 26682"
# Grabamos el procesado que hicimos hasta ahora
write(renglonesInconsistentes, "./datos/encuestas_unclear.txt")
write(renglonesConsistentes, "./datos/encuestas_clear.txt")
# ----------------------  Levantar DataFrame  ----------------------

# Levantamos el archivo ya formateado, 
encuestas <- read.csv("./datos/encuestas_clear.txt")
## Warning in scan(file = file, what = what, sep = sep, quote = quote, dec =
## dec, : EOF within quoted string
# ----------------------  Tratamiento Valores Faltantes  ----------------------


# Analisamos valores faltantes
na_count <-sapply(encuestas, function(y) sum(length(which(is.na(y)))))
na_count <- data.frame(na_count)
plot(na_count$na_count)

# Quitamos las columnas que tienen todos NA 
encuestas$SalarioActualBruto <- NULL
encuestas$IdArea <- NULL
encuestas$puestoGenerico <- NULL
encuestas$especialidadGenerico <- NULL

# La mayoria de los datos de la columna NivelRemunerativo son NA, y sumado a que tampoco hay
# referencias sobre ese campo, lo mejor parece ser que es quitarla
# antes veamos si existe alguna correlaciòn entre el nivelRemunerativo y el salario
boxplot(SalarioActualNeto ~ NivelRemunerativo, data = encuestas)

# No se ve ninguna relación clara, quitamos entonces nivelRemunerativo
encuestas$NivelRemunerativo <- NULL

# Vemos que hay un registro con IdPais en NA, lo eliminamos
encuestas <- encuestas[complete.cases(encuestas[,"IdPais"]),]

# Nos quedamos solo con los de Argentina, ya que para este estudio no nos interesa el resto. 
# Ademas sus salarios están expresados en moneda local de cada país, lo que requeriria una conversión
# Por el momento el estudio se basará en los datos de Argentina
encuestas <- subset(encuestas, IdPais == 1)
encuestas$IdPais <- NULL


# Esto último tambien eliminó el unico registro que tenia un NA en NivelDeDesconfianza, genial!


# Analisamos valores faltantes nuevamente
na_count <-sapply(encuestas, function(y) sum(length(which(is.na(y)))))
na_count <- data.frame(na_count)
plot(na_count$na_count)

# Parece estar suficientemente limpio el dataset de valores vacios.


# ----------------------  Ajuste de tipos de datos  ----------------------

# Pasamos la fecha al formato correcto
encuestas$Fecha <- as.character(encuestas$Fecha)
encuestas$Fecha <- as.POSIXlt(encuestas$Fecha)


# Levantamos las tablas auxiliares
tabla_sexo <- read.table(FILE_TABLAS, header = TRUE, sep=",", nrows =3, comment.char = "-")
tabla_nivel_educativo <- read.table(FILE_TABLAS, header = TRUE, sep="\t", nrows = 10, skip=7, comment.char = "-")
tabla_tipo_empresa <- read.table(FILE_TABLAS, header = TRUE, sep="\t", nrows = 7, skip=20, comment.char = "-")
tabla_provincia <- read.table(FILE_TABLAS, header = TRUE, sep="\t", nrows = 413, skip=30)
tabla_puesto <- read.table(FILE_TABLAS, header = TRUE, sep="\t", nrows = 95, skip=446)
tabla_tecnologia <- read.table(FILE_TABLAS, header = TRUE, sep="\t", nrows = 72, skip=544)

# Quitamos las provincias que no sean de argentina
tabla_provincia <- tabla_provincia[tabla_provincia$IdPais == 1, ]

# Seteamos los factors
table(encuestas$IdSexo)
## 
##     0     1     2 
##   558 12533  1618
encuestas$IdSexo <- factor(encuestas$IdSexo, levels = tabla_sexo$IdSexo, labels = tabla_sexo$Nombre)
table(encuestas$IdSexo)
## 
## No informa  Masculino   Femenino 
##        558      12533       1618
table(encuestas$IdNivelEducativo)
## 
##    0    1    2    3    4    5    6    7    8    9 
##  252   27  140  854 1107 2502 5035 3456  717  619
encuestas$IdNivelEducativo <- factor(encuestas$IdNivelEducativo, levels = tabla_nivel_educativo$IdNivelEducativo, labels = tabla_nivel_educativo$Nombre)
table(encuestas$IdNivelEducativo)
## 
##                               No informa 
##                                      252 
##                                 Primario 
##                                       27 
##         Secundario en curso o incompleto 
##                                      140 
##                      Secundario completo 
##                                      854 
##          Terciario en curso o incompleto 
##                                     1107 
##                       Terciario completo 
##                                     2502 
##      Universitario en curso o incompleto 
##                                     5035 
##                   Universitario completo 
##                                     3456 
## Master o postgrado en curso o incompleto 
##                                      717 
##              Master o postgrado completo 
##                                      619
table(encuestas$IdTipoDeEmpresa)
## 
##     0     1     2     3     4     5 
##   382 12774   868    63   400   222
encuestas$IdTipoDeEmpresa <- factor(encuestas$IdTipoDeEmpresa, levels = tabla_tipo_empresa$IdTipoDeEmpresa, labels = tabla_tipo_empresa$Nombre)
table(encuestas$IdTipoDeEmpresa)
## 
##                    No informa           Una empresa privada 
##                           382                         12774 
##          Un organismo estatal                       Una ONG 
##                           868                            63 
##                          Otro             Mi propia empresa 
##                           400                           222 
## Soy independiente / freelance 
##                             0
table(encuestas$IdProvincia)
## 
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15 
## 4702  169   35   30    7 6587   13 1404   57   40   88   87   18   23   11 
##   16   17   18   19   20   21   22   23   24   25   26   27   28 
##    7   75  259  134   57   35   15   17  599   42   41   10  147
encuestas$IdProvincia <- factor(encuestas$IdProvincia, levels = tabla_provincia$IdProvincia, labels = tabla_provincia$Nombre)
table(encuestas$IdProvincia)
## 
##     Capital Federal      GBA Zona Norte      GBA Zona Oeste 
##                4702                 169                  35 
##        GBA Zona Sur    Costa Atlántica        Buenos Aires 
##                  30                   7                6587 
##           Catamarca            Córdoba               Chaco 
##                  13                1404                  57 
##              Chubut          Corrientes         Entre Ríos 
##                  40                  88                  87 
##             Formosa               Jujuy            La Pampa 
##                  18                  23                  11 
##            La Rioja            Misiones             Mendoza 
##                   7                  75                 259 
##            Neuquén          Río Negro               Salta 
##                 134                  57                  35 
##          Santa Cruz Santiago del Estero            Sante Fe 
##                  15                  17                 599 
##            San Juan            San Luis    Tierra del Fuego 
##                  42                  41                  10 
##            Tucumán 
##                 147
table(encuestas$IdPuesto)
## 
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15 
## 3900  320 1061 1026   96  188   39  766  285  267  315  145   84  132  160 
##   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30 
##    2  458  210   24    8   34  255  137   63  541  279   41   58  143  659 
##   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45 
##   85  469   38   15  352  589  408  128  357   10   21   74   14   32   41 
##   46   47   48   49   50   51   52   53   54   55   56   58   60 
##   16   41   85   39   85    8   25   35   38    3    1    2    2
encuestas$IdPuesto <- factor(encuestas$IdPuesto, levels = tabla_puesto$IdPuesto, labels = tabla_puesto$Nombre)
table(encuestas$IdPuesto)
## 
##   Desarrollador de software / Programador 
##                                      3900 
##                                Arquitecto 
##                                       320 
##                         Lider de Proyecto 
##                                      1061 
##                        Analista Funcional 
##                                      1026 
##                   Selector de personal TI 
##                                        96 
##                            Diseñador Web 
##                                       188 
##                            Investigación 
##                                        39 
##                              Consultor TI 
##                                       766 
##            Administrador de Base de Datos 
##                                       285 
##                    Administrador de Redes 
##                                       267 
##     Analista de Garantía de Calidad (QA) 
##                                       315 
##        Analista de Seguridad Informática 
##                                       145 
##                                   Auditor 
##                                        84 
##                           Comercial de TI 
##                                       132 
##                      Director de Sistemas 
##                                       160 
##                  Documentador de Sistemas 
##                                         2 
##                      Gerente de Proyectos 
##                                       458 
##                 Implementador de Sistemas 
##                                       210 
##                                Instructor 
##                                        24 
##                     Gerente de Compras TI 
##                                         8 
##                 Gerente de Comunicaciones 
##                                        34 
##                     Gerente de Desarrollo 
##                                       255 
##                    Gerente de Operaciones 
##                                       137 
##         Gerente de Seguridad Informática 
##                                        63 
##                       Gerente de Sistemas 
##                                       541 
##                    Gerente de Tecnología 
##                                       279 
##                      Gerente de Ventas TI 
##                                        41 
##                                   Pasante 
##                                        58 
##                 Mesa de Ayuda (Help Desk) 
##                                       143 
##                          Soporte Técnico 
##                                       659 
##                         Pasante (Trainee) 
##                                        85 
##                                      Otro 
##                                       469 
## Administrador de Almacenamiento (Storage) 
##                                        38 
##                  Administrador Middleware 
##                                        15 
##                 Administrador de Sistemas 
##                                       352 
##                Administrador de Ambientes 
##                                       589 
##               Administrador de Servidores 
##                                       408 
##                      Coordinador de Grupo 
##                                       128 
##                            Lider Técnico 
##                                       357 
##                              Comprador TI 
##                                        10 
##                                Data Entry 
##                                        21 
##                    Soporte de Aplicación 
##                                        74 
##                       Soporte de Posventa 
##                                        14 
##                     Jefe de Mesa de Ayuda 
##                                        32 
##                              Operador NOC 
##                                        41 
##                   Líder de Mesa de Ayuda 
##                                        16 
##                     Líder de Operaciones 
##                                        41 
##       Líder de Garantía de Calidad (QA) 
##                                        85 
##          Líder de Seguridad Informática 
##                                        39 
##                Líder de Soporte Técnico 
##                                        85 
##                         Operador de AS400 
##                                         8 
##                                  Preventa 
##                                        25 
##                       Ejecutivo de Cuenta 
##                                        35 
##                       Gerente de Producto 
##                                        38 
##                               Analista BI 
##                                         3 
##                              Scrum Master 
##                                         1 
##                             Auditor de TI 
##                                         0 
##                           Gerente General 
##                                         2 
##                          Director General 
##                                         2 
##                   Administrador de Backup 
##                                         0 
##                                Maquetador 
##                                         0 
##                Administrador de Proyectos 
##                                         0 
##                      Operador de Sistemas 
##                                         0 
##                          Tester Funcional 
##                                         0 
##                        Analista de Testeo 
##                                         0 
##                        Jefe de Compras TI 
##                                         0 
##                    Jefe de Comunicaciones 
##                                         0 
##                        Jefe de Desarrollo 
##                                         0 
##                       Jefe de Operaciones 
##                                         0 
##            Jefe de Seguridad Informática 
##                                         0 
##                          Jefe de Sistemas 
##                                         0 
##                       Jefe de Tecnología 
##                                         0 
##                         Jefe de Ventas TI 
##                                         0 
##               Jefe de Gestión de Demanda 
##                                         0 
##                     Diseñador Multimedia 
##                                         0 
##                   Gestor de Cambios de IT 
##                                         0 
##                     Gestor de Transición 
##                                         0 
##                 Gestor de Configuraciones 
##                                         0 
##                       Analista de Cambios 
##                                         0 
##                 Gerente de Procesos de IT 
##                                         0 
##                      Gestor de Incidentes 
##                                         0 
##                       Gestor de Problemas 
##                                         0 
##                        Gerente de Demanda 
##                                         0 
##                Gerente de Infraestructura 
##                                         0 
##                   Jefe de Infraestructura 
##                                         0 
##             Supervisor de Infraestructura 
##                                         0 
##            Responsable de Infraestructura 
##                                         0 
##        Analista de Gestión de la Demanda 
##                                         0 
##     Responsable de Gestión de la Demanda 
##                                         0 
##                      Analista de Procesos 
##                                         0 
##                   Responsable de Procesos 
##                                         0 
##                       Gestor de Servicios 
##                                         0 
##                          Desarrollador BI 
##                                         0 
##                                  Lider BI 
##                                         0 
##                    Gerente Regional de IT 
##                                         0
table(encuestas$IdTecnologiaPrincipal)
## 
##    1    2    3    5    6    7    8   10   11   12   13   15   16   17   19 
## 2999 2028  881  174   80   38   29   54   72  113  229   41  111   64   89 
##   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34 
##    1  462  931   29  124   80   24  805   61 1368 2135  436   34   45   22 
##   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49 
##  106  115    5   12   98   15  153    7   21    7   13   49  152    8   65 
##   50   51   52   53   54   55   56   57   58   59   60   62   63   64   65 
##   54   56   42   51   18   19   30   14   10    2    5    4    5    1   13
encuestas$IdTecnologiaPrincipal <- factor(encuestas$IdTecnologiaPrincipal, levels = tabla_tecnologia$IdTecnologiaPrincipal, labels = tabla_tecnologia$Nombre)
## Warning in `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels)
## else paste0(labels, : duplicated levels in factors are deprecated
table(encuestas$IdTecnologiaPrincipal)
## Warning in `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels)
## else paste0(labels, : duplicated levels in factors are deprecated

## 
##            .Net            Java             PHP             C++ 
##            2999            2028             881             174 
##               C            Ruby            Perl          Prolog 
##              80              38              29               0 
##       Smalltalk          Python          Delphi     VisualBasic 
##              54              72             113             229 
##    ActionScript     Javascsript             Asp            Html 
##              41             111              64              89 
##         Haskell     MSSQLServer          Oracle      PostgreSql 
##               1             462             931              29 
## DatawareHousing           Cobol             DB2             SAP 
##             124             178              24             805 
##          Siebel            Otro         Windows           Linux 
##              76            1368            2135             436 
##         Solaris             Aix           Hp-ux       Mainframe 
##              34              45              22             106 
##          AS/400       Assembler             CMS           Cobol 
##             115               5              12               0 
##          Siebel             ERP           Flash            Flex 
##               0             153               7              21 
##           Meta4             RPG              Hp            Unix 
##               7              13              49             152 
##         Clipper         Genexus    MySql Server   Visual FoxPro 
##               8              65              54              56 
##         Android      Sharepoint         Clarion        QlikView 
##              42              51              18              19 
##   Microstrategy  BusinessObject          Cognos        Hyperion 
##              30              14              10               2 
##           Tibco           Board         Pentaho           CISCO 
##               5               0               4               5 
##            SSIS          VMWare    PowerBuilder             CRM 
##               1              13               0               0 
##     Objective-C      JD Edwards      PeopleSoft          Joomla 
##               0               0               0               0 
##         Clojure           Scala         Node js   Ruby on Rails 
##               0               0               0               0
table(encuestas$TrabajaDesdeCasa)
## 
## False  True 
## 11723  2986
encuestas$TrabajaDesdeCasa <- factor(encuestas$TrabajaDesdeCasa, levels = c("True", "False"), labels = c("Si", "No"))
table(encuestas$TrabajaDesdeCasa)
## 
##    Si    No 
##  2986 11723
table(encuestas$LeGustaTrabajarDesdeCasa)
## 
## False  True 
##  3628 11081
encuestas$LeGustaTrabajarDesdeCasa <- factor(encuestas$LeGustaTrabajarDesdeCasa, levels = c("True", "False"), labels = c("Si", "No"))
table(encuestas$LeGustaTrabajarDesdeCasa)
## 
##    Si    No 
## 11081  3628
table(encuestas$CambioPorMejorSalario)
## 
## False  True 
##  3091 11618
encuestas$CambioPorMejorSalario <- factor(encuestas$CambioPorMejorSalario, levels = c("True", "False"), labels = c("Si", "No"))
table(encuestas$CambioPorMejorSalario)
## 
##    Si    No 
## 11618  3091
table(encuestas$CambioPorMejorAmbiente)
## 
## False  True 
## 10703  4006
encuestas$CambioPorMejorAmbiente <- factor(encuestas$CambioPorMejorAmbiente, levels = c("True", "False"), labels = c("Si", "No"))
table(encuestas$CambioPorMejorAmbiente)
## 
##    Si    No 
##  4006 10703
table(encuestas$CambioPorFormaDeTrabajo)
## 
## False  True 
##  8209  6500
encuestas$CambioPorFormaDeTrabajo <- factor(encuestas$CambioPorFormaDeTrabajo, levels = c("True", "False"), labels = c("Si", "No"))
table(encuestas$CambioPorFormaDeTrabajo)
## 
##   Si   No 
## 6500 8209
table(encuestas$CambioPorTecnologia)
## 
## False  True 
## 10395  4314
encuestas$CambioPorTecnologia <- factor(encuestas$CambioPorTecnologia, levels = c("True", "False"), labels = c("Si", "No"))
table(encuestas$CambioPorTecnologia)
## 
##    Si    No 
##  4314 10395
table(encuestas$CambioPorCercania)
## 
##       False  True 
##  4622  7546  2541
encuestas$CambioPorCercania <- factor(encuestas$CambioPorCercania, levels = c("", "True", "False"), labels = c("No informa", "Si", "No"))
table(encuestas$CambioPorCercania)
## 
## No informa         Si         No 
##       4622       2541       7546
table(encuestas$CambioPorMenorCargaHoraria)
## 
##       False  True 
##  4622  7763  2324
encuestas$CambioPorMenorCargaHoraria <- factor(encuestas$CambioPorMenorCargaHoraria, levels = c("", "True", "False"), labels = c("No informa", "Si", "No"))
table(encuestas$CambioPorMenorCargaHoraria)
## 
## No informa         Si         No 
##       4622       2324       7763
table(encuestas$CambioPorOportunidadDeCarrera)
## 
##       False  True 
##  4622  4437  5650
encuestas$CambioPorOportunidadDeCarrera <- factor(encuestas$CambioPorOportunidadDeCarrera, levels = c("", "True", "False"), labels = c("No informa", "Si", "No"))
table(encuestas$CambioPorOportunidadDeCarrera)
## 
## No informa         Si         No 
##       4622       5650       4437
table(encuestas$TienePersonasACargo)
## 
##       False  True 
##  6171  5939  2599
encuestas$TienePersonasACargo <- factor(encuestas$TienePersonasACargo, levels = c("", "True", "False"), labels = c("No informa", "Si", "No"))
table(encuestas$TienePersonasACargo)
## 
## No informa         Si         No 
##       6171       2599       5939
# ---------------------- Limpieza de valores anomalos  ---------------------- 

# todas las (edad > 65) las vamos a considerar anomalas y vamos a desechar esos registros
encuestas <- encuestas[encuestas$Edad < 66, ]
hist(encuestas$Edad)
rug(encuestas$Edad)

# todas las (horas trabajadas >= 120 o <= 18) las vamos a considerar anomalas y vamos a desechar esos registros
encuestas <- encuestas[encuestas$horasTrabajadasXSemana < 120, ]
encuestas <- encuestas[encuestas$horasTrabajadasXSemana > 18, ]
hist(encuestas$horasTrabajadasXSemana)
rug(encuestas$horasTrabajadasXSemana)

# todos los (meses en el puesto actual >= 360) los vamos a considerar anomalas y vamos a desechar esos registros
encuestas <- encuestas[encuestas$MesesEnElPuestoActual < 480, ]
hist(encuestas$MesesEnElPuestoActual)
rug(encuestas$MesesEnElPuestoActual)

# todos los (salario actual neto >= 150000) los vamos a considerar anomalas y vamos a desechar esos registros
encuestas <- encuestas[encuestas$SalarioActualNeto < 150000, ]
hist(encuestas$SalarioActualNeto)
rug(encuestas$SalarioActualNeto)

# todos los (salario ideal neto >= 150000) los vamos a considerar anomalas y vamos a desechar esos registros
encuestas <- encuestas[encuestas$SalarioIdealNeto < 150000, ]
hist(encuestas$SalarioIdealNeto)
rug(encuestas$SalarioIdealNeto)

# Borramos los levels que no se usan
encuestas <- droplevels(encuestas)
## Warning in `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels)
## else paste0(labels, : duplicated levels in factors are deprecated
# ---------------------- Creación de caracteristicas  ---------------------- 

encuestas$DiferenciaSalarioRealIdeal <- encuestas$SalarioIdealNeto - encuestas$SalarioActualNeto

encuestas$SalarioNetoPorHora <- encuestas$SalarioActualNeto / encuestas$horasTrabajadasXSemana

# Carga laboral: En relación a las horas que dedica al trabajo
encuestas$CargaLaboral <- cut(encuestas$horasTrabajadasXSemana, 5, labels = c("Part Time", "Full Time", "Extra Time", "Very Extra Time", "Extreme Time"))

# Antiguedad: Nivel de antiguedad en el actual trabajo
encuestas$Antiguedad <- cut(encuestas$MesesEnElPuestoActual,quantile(encuestas$MesesEnElPuestoActual,(0:4)/4), labels = c("Junior", "SemiSenior", "Senior", "Expert"))

# Experiencia: Nivel de antiguedad en cualquier trabajo
encuestas$Experiencia <- cut(encuestas$MesesDeExperiencia,quantile(encuestas$MesesDeExperiencia,(0:4)/4), labels = c("Junior", "SemiSenior", "Senior", "Expert"))

# ---------------------- Limpieza de valores anomalos en caracteristicas creadas  ---------------------- 

# Todas las diferencias de salario real e ideal mayores a 25000 y menores a -5000 las eliminamos
# Por considerarlas anomalas.
encuestas <- encuestas[encuestas$DiferenciaSalarioRealIdeal < 25000, ]
encuestas <- encuestas[encuestas$DiferenciaSalarioRealIdeal > -5000, ]
hist(encuestas$DiferenciaSalarioRealIdeal)
rug(encuestas$DiferenciaSalarioRealIdeal)

# Todos los salarios netos por hora mayores a 1500 los vamos a eliminar por considerarlos anomalos
encuestas <- encuestas[encuestas$SalarioNetoPorHora < 1500, ]
hist(encuestas$SalarioNetoPorHora)
rug(encuestas$SalarioNetoPorHora)

# Todos los "Extreme Time" los vamos a borrar por no ser representativos
encuestas <- encuestas[encuestas$CargaLaboral != "Extreme Time", ]
table(encuestas$CargaLaboral)
## 
##       Part Time       Full Time      Extra Time Very Extra Time 
##            1301           11987             269              40 
##    Extreme Time 
##               0
# Borramos los levels que no se usan
encuestas <- droplevels(encuestas)

Exploración grafica

Algunos graficos de ejemplo:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.