R/show_index.R

#' Muestra el índice de variables del diccionario.
#'
#' @param src El nombre de la encuesta.
#'
#' @return Un tibble con el nombre y la descripción de cada variable.
#'
#' @export
#' @importFrom magrittr %>%
#' @encoding   UTF-8
#'
#' @examples
#' show_index(src = "casen")
show_index <- function(src = c("casen", "ene", "esi")) {
  # Captura la tabla de correspodencias
  io <- sprintf("io_%s", src) %>% get()

  # Deduce el año y la fecha actuales
  year  <- Sys.Date() %>% format("%Y") %>% as.numeric()
  month <- Sys.Date() %>% format("%m") %>% as.numeric()

  # Deduce todos los outputs e inputs del diccionario
  outputs <- io[["output"]]
  inputs  <- olndictr::find_inputs(outputs, src, year, month)

  # Deduce el número de inputs (ni) y outputs (no)
  ni <- length(inputs)
  no <- length(outputs)

  # Genera una BBDD artificial de inputs
  df <- matrix(0, nrow = 1, ncol = ni) %>% data.frame()
  names(df) <- inputs

  # Genera una BBDD artificial de outputs
  df <- olndictr::add_varlist(df, outputs, src, year, month)

  # Genera una BBDD con todas las etiquetas de variables
  i <- 1
  idx <- tibble::tibble(variable = character(no), descripcion = character(no))
  for (var in outputs) {
    idx[i, 1] <- var
    idx[i, 2] <- labelled::var_label(df[[var]])
    i <- i + 1
  }

  # Reporta el resultado
  return(idx)
}
igutierrezm/olndictr documentation built on May 31, 2019, 8:07 a.m.