tests/testthat/test-ftable.R

# 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)
igutierrezm/olndictr documentation built on May 31, 2019, 8:07 a.m.