R/oln_generate_ene+.R

oln_generate_ene_cise_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("cise_")
  inputs <- c("categoria_ocupacion", "b8", "b9")

  # Particiona los inputs
  cise0 <- inputs[1]

  # Genera la nueva variable
  df[[output]] <- df[[cise0]] %>%
    cut(breaks = c(-Inf, 1, 2, 6, 7), labels = FALSE)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Empleador"     = 1,
      "Cuenta propia" = 2,
      "Asalariado"    = 3,
      "FNR"           = 4,
      "ns/nr"         = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Categoria de ocupacion"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_duremp_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("duremp_")
  inputs <- c("b17_ano", "b17_mes")

  # Particiona los inputs
  ano <- inputs[1]
  mes <- inputs[2]

  # Genera la nueva variable
  touse <- (df[[mes]] != 999) & (df[[ano]] != 9999)
  df[touse, output] <- (month - df[[mes]]) + 12 * (year - df[[ano]])

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Duracion del empleo (en meses)"

  # Reporta el resultado
  return(df)
}

oln_generate_ene_duremp_tr_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("duremp_tr_")
  inputs <- c("b17_ano", "b17_mes")

  # Genera los inputs intermedios (si es que no existen ya)
  if (!(inputs %in% colnames(df))) {
    df <- oln_generate_ene_duremp(df, year, month)
  }

  # Genera la nueva variable
  df[[output]] <- df[[inputs]] %>%
    cut(breaks = c(-Inf, 5, 11, 59, 119, Inf), labels = FALSE)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("5 o menos"      = 1,
      "Entre 6 y 11"   = 2,
      "Entre 12 y 59"  = 3,
      "Entre 60 y 119" = 4,
      "120 o mas"      = 5,
      "ns/nr"          = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Tramo de duraciĆ³n de empleo (en meses)"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_edad_tr_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("edad_tr_")
  inputs <- c("edad")

  # Genera la nueva variable
  df[[output]] <- df[[inputs]] %>%
    cut(breaks = c(-Inf, 14, 24, 34, 44, 54, 64, Inf), labels = FALSE)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("14 o menos"    = 1,
      "Entre 15 y 24" = 2,
      "Entre 25 y 34" = 3,
      "Entre 35 y 44" = 4,
      "Entre 45 y 54" = 5,
      "Entre 55 y 64" = 6,
      "65 o mas"      = 7,
      "ns/nr"         = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Tramo de edad (en anos)"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_educ_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("educ_")
  inputs <- c("nivel", "termino_nivel")

  # Particiona los inputs
  n <- inputs[1]
  t <- inputs[2]

  # Genera la nueva variable
  df[[output]] <-
    dplyr::case_when(df[[n]] %in% 0:2                       ~ 1,
                     df[[n]] %in% 3          & df[[t]] == 2 ~ 1,
                     df[[n]] %in% 3          & df[[t]] == 1 ~ 2,
                     df[[n]] %in% c(4:6, 14) & df[[t]] == 2 ~ 2,
                     df[[n]] %in% c(4:6, 14) & df[[t]] == 1 ~ 3,
                     df[[n]] %in% 7:9        & df[[t]] == 2 ~ 3,
                     df[[n]] %in% 7:8        & df[[t]] == 1 ~ 4,
                     df[[n]] %in% 9          & df[[t]] == 1 ~ 5,
                     df[[n]] %in% 10                        ~ 5,
                     df[[n]] %in% 11:12      & df[[t]] == 2 ~ 5,
                     df[[n]] %in% 11:12      & df[[t]] == 2 ~ 6,
                     TRUE ~ NA_real_)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Basica incompleta o menos" = 1,
      "Basica"                    = 2,
      "Media"                     = 3,
      "Tecnica"                   = 4,
      "Profesional"               = 5,
      "Postgrado"                 = 6,
      "ns/nr"                     = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Nivel educacional"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_ocupado_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("ocupado_")
  inputs <- c("cae_general")

  # Genera la nueva variable
  df[[output]] <-
    dplyr::case_when(df[[inputs]] %in% 1:3       ~ 1,
                     df[[inputs]] %in% c(0, 4:9) ~ 0,
                     TRUE ~ NA_real_)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("No" = 0, "Si" = 1, "ns/nr" = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Esta ocupado?"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_oficio1_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("oficio1_")
  inputs <- c("b1")

  # Genera la nueva variable
  df[[output]] <-
    dplyr::recode(df[[inputs]], `10` = NA_real_)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Fuerzas armadas"                                                     = 0,
      "Miembros del poder ejecutivo/legislativo y personal directivo"       = 1,
      "Profesionales, cientificos e intelectuales"                          = 2,
      "Tecnicos profesionales de nivel medio"                               = 3,
      "Empleados de oficina"                                                = 4,
      "Trabajadores de los servicios y vendedores de comercios y mercados"  = 5,
      "Agricultores y trabajadores calificados agropecuarios y pesqueros"   = 6,
      "Oficiales, operarios y artesanos de artes mecanicas y otros oficios" = 7,
      "Operadores de instalaciones y maquinas y montadores"                 = 8,
      "Trabajadores no calificados"                                         = 9,
      "ns/nr" = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Gran grupo de ocupacion (CIUO-88)"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_rama1_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("rama1_")
  inputs <- c("b14")

  # Genera la nueva variable
  df[[output]] <-
    dplyr::case_when(df[[inputs]] %in% c(12, 17) ~ 12,
                     df[[inputs]] %in% 13:16     ~ 13,
                     TRUE ~ df[[inputs]])

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Agropecuario-silvicola"                                 = 1,
      "Pesca"                                                  = 2,
      "Mineria"                                                = 3,
      "Industria manufacturera"                                = 4,
      "Electricidad, gas y agua"                               = 5,
      "Construccion"                                           = 6,
      "Comercio"                                               = 7,
      "Hoteles y restaurantes"                                 = 8,
      "Transporte y comunicaciones"                            = 9,
      "Intermediacion financiera"                              = 10,
      "Actividades inmobiliarias, empresariales y de alquiler" = 11,
      "Servicios personales"                                   = 12,
      "AdministraciĆ³n publica"                                 = 13,
      "ns/nr"                                                  = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Rama de actividad economica (CIIU-rev3)"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_sexo_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("sexo_")
  inputs <- c("sexo")

  # Genera la nueva variable
  df[[output]] <- df[[inputs]]

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Hombre" = 1, "Mujer" = 2, "ns/nr" = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Sexo"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}

oln_generate_ene_zona_ <- function(df, year, month, ...) {
  # Identifica inputs y outputs
  output <- c("zona_")
  inputs <- c("tipo")

  # Genera la nueva variable
  df[[output]] <-
    as.numeric(df[[inputs]] <= 2)

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Rural" = 0, "Urbano" = 1, "ns/nr" = NA)

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Zona"

  # Factoriza la variable
  df[[output]] <- df[[output]] %>%
    labelled::to_factor(exclude = NULL)

  # Reporta el resultado
  return(df)
}
igutierrezm/mypkgr documentation built on May 8, 2019, 11:45 a.m.