# Housekeeping
cat("\014")
rm(list = ls())
# Librerías externas
library(feather)
library(survey)
library(tidyverse)
# Funciones auxiliares
svymedian <- function(formula, design, ...) {
survey::svyquantile(formula, design, quantiles = 0.5, ...)
}
# BBDD
data(api)
dfs <- list()
dfs[[1]] <- svydesign(id = ~dnum, weights = ~pw, data = apiclus1)
dfs[[2]] <- svydesign(id = ~dnum, weights = ~pw, data = apiclus2)
dclus1 <- svydesign(id = ~dnum, weights = ~pw, data = apiclus1)
#===============================================================================
# Prueba No.1 de svyby/tidy - Mediana
#===============================================================================
# Declara los estimadores requeridos
estimate1 <- function(year, month) {
# Calcula la estadísticas
x <- svyby2(
formula = ~api99,
by = ~stype+comp.imp,
design = dclus1,
subpop = (sch.wide == "Yes"),
FUN = svymedian
)
# Ordena el resultado
x <- tidy(x)
# Captura la versión de la encuesta
x$año <- year
x$mes <- month
# Reporta el resultado
return(x)
}
# Estima el modelo para varios años y meses
x1 <- estimate1 %>%
mapply(c(2010, 2011), seq(2, 11, 3), SIMPLIFY = FALSE) %>%
dplyr::bind_rows()
# Imprime el resultado
print(x1)
#===============================================================================
# Prueba No.2 de svyby/tidy - Proporción
#===============================================================================
# Declara los estimadores requeridos
estimate2 <- function(year, month) {
# Calcula la estadísticas
x <- svyby2(
formula = ~awards,
by = ~stype,
design = dclus1,
subpop = (sch.wide == "Yes"),
FUN = svymean
)
# Ordena el resultado
x <- tidy(x)
# Captura la versión de la encuesta
x$año <- year
x$mes <- month
# Reporta el resultado
return(x)
}
# Estima el modelo para varios años y meses
x2 <- estimate2 %>%
mapply(c(2010, 2011), seq(2, 11, 3), SIMPLIFY = FALSE) %>%
dplyr::bind_rows()
# Imprime el resultado
print(x2)
#===============================================================================
# Prueba No.3 de svyby/tidy - Proporción con interacciones
#===============================================================================
# Declara los estimadores requeridos
estimate3 <- function(year, month) {
# Calcula la estadísticas
x <- svyby2(
formula = ~interaction(awards, comp.imp),
by = ~stype,
design = dclus1,
subpop = (sch.wide == "Yes"),
FUN = svymean
)
# Ordena el resultado
x <- tidy(x)
# Captura la versión de la encuesta
x$año <- year
x$mes <- month
# Reporta el resultado
return(x)
}
# Estima el modelo para varios años y meses
x3 <- estimate3 %>%
mapply(c(2010, 2011), seq(2, 11, 3), SIMPLIFY = FALSE) %>%
dplyr::bind_rows()
# Imprime el resultado
print(x3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.