#' Identifica los insumos de una o más variables del diccionario.
#'
#' @param varlist (string vector) Los nombres de variables del diccionario.
#' @param src (string scalar) El nombre de la encuesta.
#' @param year (double scalar) El año de la encuesta.
#' @param month (double scalar) El mes de la encuesta.
#'
#' @return (string vector) Los nombres de todos los insumos de \code{varlist}.
#'
#' @export
#' @importFrom magrittr %>%
#' @encoding UTF-8
#'
#' @examples
#' find_inputs("educ_", src = "casen", year = 2015, month = 1)
find_inputs <- function(varlist,
src = c("casen", "ene", "esi"),
year = 2100,
month = 12) {
# Convierte el par (year, month) en una fecha
date <- c(year, month, "1") %>%
paste(collapse = "-") %>%
as.Date()
# Carga la tabla de correspondencias
df <- sprintf("io_%s", src) %>% get()
# Filtra df, dejando solo los inputs relevantes
df <- df %>%
dplyr::filter(output %in% varlist) %>%
dplyr::filter(date0 <= date, date <= date1)
# Verifica que todas las variables hayan sido encontradas
missed <- setdiff(varlist, df[["output"]])
if (length(missed) != 0) {
msg <- paste(missed, collapse = ", ")
msg <- paste(msg, "not found in dictionary")
stop(msg)
}
# Particiona los registros con más de un input
df <- dplyr::distinct(df, inputs)
df <- df$inputs %>% strsplit(split = " ") %>% unlist()
# Reporta el resultado
return(df)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.