R/oln_generate_casen+.R

oln_generate_casen_edad_tr_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 1990) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("edad_tr_")
  inputs <- oln_find_inputs(output, src = "casen", year)

  # 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_casen_educ_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 1990) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("educ_")
  inputs <- oln_find_inputs(output, src = "casen", year)

  # Genera la nueva variable
  df[[output]] <- df[[inputs]] %>%
    dplyr::recode(`8` = 9, `9` = 8) %>%
    cut(breaks = c(-Inf, 1, 4, 8, 9, 11, 12), labels = FALSE)

  # 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_casen_etnia_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2009) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("etnia_")
  inputs <- oln_find_inputs(output, src = "casen", year)

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

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

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Pertenece a alguna etnia?"

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

  # Reporta el resultado
  return(df)
}

oln_generate_casen_ocupado_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2000) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("ocupado_")
  inputs <- oln_find_inputs(output, src = "casen", year = year)

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

  # 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_casen_oficio1_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2000) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("oficio1_")
  inputs <- oln_find_inputs(output, src = "casen", year)

  # Genera la nueva variable
  df[[output]] <- df[[inputs]] %>%
    dplyr::recode(`10` = NA_real_, `9999` = 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 mecánicas 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_casen_oficio4_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2011) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("oficio4_")
  inputs <- oln_find_inputs(output, src = "casen", year = year)

  # Genera la nueva variable
  df[[output]] <-
    as.numeric(df[[inputs]]) %>%
    dplyr::recode(`9500` = NA_real_, `9999` = NA_real_)

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

  # Reporta el resultado
  return(df)
}

oln_generate_casen_psu_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2000) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("psu_")
  inputs <- oln_find_inputs(output, src = "casen", year)

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

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

  # Reporta el resultado
  return(df)
}

oln_generate_casen_pw_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2000) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("pw_")
  inputs <- oln_find_inputs(output, src = "casen", year)

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

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

  # Reporta el resultado
  return(df)
}

oln_generate_casen_rama1_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2011) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("rama1_")
  inputs <- oln_find_inputs(output, src = "casen", year)

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

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Agropecuario-Silvicola"                                 = 01,
      "Pesca"                                                  = 02,
      "Mineria"                                                = 03,
      "Industria Manufacturera"                                = 04,
      "Electricidad, gas y agua"                               = 05,
      "Construccion"                                           = 06,
      "Comercio"                                               = 07,
      "Hoteles y restaurantes"                                 = 08,
      "Transporte y comunicaciones"                            = 09,
      "Intermediacion financiera"                              = 10,
      "Actividades inmobiliarias, empresariales y de alquiler" = 11,
      "Servicios personales"                                   = 12,
      "Administracion 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_casen_sexo_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2000) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("sexo_")
  inputs <- oln_find_inputs(output, src = "casen", year)

  # 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_casen_strata_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2000) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("strata_")
  inputs <- oln_find_inputs(output, src = "casen", year)

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

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

  # Reporta el resultado
  return(df)
}

oln_generate_casen_trabsub_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 2011) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("trabsub_")
  inputs <- oln_find_inputs(output, src = "casen", year = year)

  # Genera variables auxiliares (de ser necesario)
  if (!("oficio4_" %in% colnames(df))) {
    df <- oln_generate_casen_oficio4_(df, year, ...)
  }

  # Genera la nueva variable
  df[[output]] <-
    (as.numeric(df[["oficio4_"]]) == 6210) %>%
    dplyr::if_else(1, 0)

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

  # Etiqueta la variable
  labelled::var_label(df[[output]]) <-
    "Es un trabajador de subsistencia? (CIUO-88: 6210)"

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

  # Reporta el resultado
  return(df)
}

oln_generate_casen_zona_ <- function(df, year, ...) {
  # Verifica la disponibilidad de la variable
  if (year < 1990) stop(sprintf("aún no disponible para el año %d.", year))

  # Identifica inputs y outputs
  output <- c("zona_")
  inputs <- oln_find_inputs(output, src = "casen", year)

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

  # Etiqueta los valores
  labelled::val_labels(df[[output]]) <-
    c("Urbano" = 1, "Rural" = 2, "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.