Nothing
context("test treatment for variables with missings")
skip_on_cran()
# load libraries
library( survey )
library( convey )
library( laeken )
library( testthat )
# collect and format data
data( eusilc )
names( eusilc ) <- tolower( names( eusilc ) )
# set up survey design objects
des_eusilc <- svydesign( ids = ~rb030 , strata = ~db040 , weights = ~rb050 , data = eusilc )
des_eusilc_rep <-as.svrepdesign( des_eusilc , type= "bootstrap" , replicates = 50 )
# prepare for convey
des_eusilc <- convey_prep( des_eusilc )
des_eusilc_rep <- convey_prep( des_eusilc_rep )
# # only striclty positive incomes
# test_that( "error on income <= 0 " , expect_error( svygei( ~eqincome , des_eusilc , epsilon = .5 ) ) )
# filter positive
des_eusilc <- subset( des_eusilc , py010n > 0 | is.na( py010n ) )
des_eusilc_rep <- subset( des_eusilc_rep , py010n > 0 | is.na( py010n ) )
# test for missing
# make initial object
out <- NULL
# cycle through single-valued functions
for( this_fun in c( "svyjdivdec" , "svygeidec" , "svyfgtdec" , "svyrmpg" , "svygei" , "svygpg" , "svyatk" , "svyqsr" , "svypoormed" , "svyrmir" , "svyisq" , "svyiqalpha" , "svyarpr" , "svyarpt" , "svyfgt" , "svygini" , "svyjdiv" , "svylorenz" , "svyrich" , "svywatts" , "svywattsdec" , "svyzenga" ) ){
# test across functions
test_that( paste( "coef and SE matrix must return missing:" , this_fun ) , {
# get function object
final_fun <- FUN <- get( this_fun )
# set up arguments
if( identical( FUN , svyrmpg ) ) final_fun <- function( ... ) FUN( ... , thresh = TRUE )
if( identical( FUN , svyrmir ) ) final_fun <- function( ... ) FUN( ... , age = ~ age , med_old = TRUE )
if( identical( FUN , svyisq ) ) final_fun <- function( ... ) FUN( ... , alpha = 0.2 )
if( identical( FUN , svyiqalpha ) ) final_fun <- function( ... ) FUN( ... , alpha = 0.5 )
if( identical( FUN , svywatts ) ) final_fun <- function( ... ) FUN( ... , abs_thresh = 10000 )
if( identical( FUN , svywattsdec ) ) final_fun <- function( ... ) FUN( ... , abs_thresh = 10000 )
if( identical( FUN , svyfgt ) ) final_fun <- function( ... ) FUN( ... , g = 0 , abs_thresh = 10000 )
if( identical( FUN , svyfgtdec ) ) final_fun <- function( ... ) FUN( ... , g = 2 , abs_thresh = 10000 )
if( identical( FUN , svyrich ) ) final_fun <- function( ... ) FUN( ... , type_measure = "FGTT1" , g = 1 , abs_thresh = 10000 )
if( identical( FUN , svygpg ) ) final_fun <- function( ... ) FUN( ... , sex = ~ rb090 )
if( identical( FUN , svygei ) ) final_fun <- function( ... ) FUN( ... , epsilon = 0.5 )
if( identical( FUN , svygeidec ) ) final_fun <- function( ... ) FUN( ... , subgroup = ~ rb090 )
if( identical( FUN , svyjdivdec ) ) final_fun <- function( ... ) FUN( ... , subgroup = ~ rb090 )
# evaluate function with missing
# (these must return a missing value)
est_lin <- final_fun( ~ py010n , des_eusilc )
est_rep <- final_fun( ~ py010n , des_eusilc_rep )
# evaluate function with missing
# (these must return a missing value)
est_lin_narm <- final_fun( ~ py010n , des_eusilc , na.rm = TRUE )
est_rep_narm <- final_fun( ~ py010n , des_eusilc_rep , na.rm = TRUE )
# test result in variable with missing
expect_true( all( is.na( coef( est_lin ) ) ) )
expect_true( all( is.na( SE( est_lin ) ) ) )
expect_true( all( is.na( coef( est_rep ) ) ) )
expect_true( all( is.na( SE( est_rep ) ) ) )
# test result in variable with na.rm
expect_true( all( !is.na( coef( est_lin_narm ) ) ) )
expect_true( all( !is.na( SE( est_lin_narm ) ) ) )
expect_true( all( !is.na( coef( est_rep_narm ) ) ) )
expect_true( all( !is.na( SE( est_rep_narm ) ) ) )
} )
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.