Nothing
context('Tabulation')
test_that("dimensions are correct", {
expect_equivalent( dim( tally( ~ sex & substance | homeless, mosaicData::HELPrct, margins=TRUE ) ), c( 3, 4, 2) )
expect_equivalent( dim( tally( ~ sex & substance & homeless, mosaicData::HELPrct, margins=TRUE ) ), c( 3, 4, 3) )
expect_equivalent( dim( tally( ~ sex | substance & homeless, mosaicData::HELPrct, margins=TRUE ) ), c( 3, 3, 2) )
expect_equivalent( dim( tally( ~ sex + substance | homeless, mosaicData::HELPrct, margins=TRUE ) ), c( 3, 4, 2) )
expect_equivalent( dim( tally( ~ sex + substance + homeless, mosaicData::HELPrct, margins=TRUE ) ), c( 3, 4, 3) )
expect_equivalent( dim( tally( ~ sex | substance + homeless, mosaicData::HELPrct, margins=TRUE ) ), c( 3, 3, 2) )
expect_equivalent( dim( tally( ~ sex & substance | homeless, mosaicData::HELPrct) ), c( 2, 3, 2) )
expect_equivalent( dim( tally( ~ sex & substance & homeless, mosaicData::HELPrct) ), c( 2, 3, 2) )
expect_equivalent( dim( tally( ~ sex | substance & homeless, mosaicData::HELPrct) ), c( 2, 3, 2) )
expect_equivalent( dim( tally( ~ sex + substance | homeless, mosaicData::HELPrct) ), c( 2, 3, 2) )
expect_equivalent( dim( tally( ~ sex + substance + homeless, mosaicData::HELPrct) ), c( 2, 3, 2) )
expect_equivalent( dim( tally( ~ sex | substance + homeless, mosaicData::HELPrct) ), c( 2, 3, 2) )
})
test_that("Proportions/Counts/Percents selected correctly", {
expect_true( all(tally( ~ sex & substance | homeless, data=mosaicData::HELPrct) > 5) )
expect_true( all(tally( ~ sex & substance & homeless, data=mosaicData::HELPrct) > 5) )
expect_equivalent( max(tally( ~ sex & substance & homeless, data=mosaicData::HELPrct, margins=TRUE)) , nrow(mosaicData::HELPrct) )
expect_true( all(tally( ~ sex & substance | homeless, format='percent', data=mosaicData::HELPrct) <= 100) )
expect_equivalent( 100 * tally( ~ sex & substance | homeless, format='proportion', data=mosaicData::HELPrct),
tally( ~ sex & substance | homeless, format='percent', data=mosaicData::HELPrct))
expect_true( all(tally( ~ sex + substance | homeless, data=mosaicData::HELPrct) > 5) )
expect_true( all(tally( ~ sex + substance + homeless, data=mosaicData::HELPrct) > 5) )
expect_equivalent( max(tally( ~ sex + substance + homeless, data=mosaicData::HELPrct, margins=TRUE)) , nrow(mosaicData::HELPrct) )
expect_true( all(tally( ~ sex + substance | homeless, format='percent', data=mosaicData::HELPrct) <= 100) )
expect_equivalent( 100 * tally( ~ sex + substance | homeless, format='proportion', data=mosaicData::HELPrct),
tally( ~ sex + substance | homeless, format='percent', data=mosaicData::HELPrct))
})
test_that("Subsetting works", {
expect_equivalent(
tally( ~ substance & homeless, mosaicData::HELPrct, subset=sex=='male' ) +
tally( ~ substance & homeless, mosaicData::HELPrct, subset=sex=='female' ),
tally( ~ substance & homeless, mosaicData::HELPrct)
)
expect_equivalent(
tally( ~ substance + homeless, mosaicData::HELPrct, subset=sex=='male' ) +
tally( ~ substance + homeless, mosaicData::HELPrct, subset=sex=='female' ),
tally( ~ substance + homeless, mosaicData::HELPrct)
)
})
test_that("errors generated for bad formula types", {
expect_error( prop(sex~homeless&substance, data=mosaicData::HELPrct))
expect_error( count(sex~homeless&substance, data=mosaicData::HELPrct))
expect_error( perc(sex~homeless&substance, data=mosaicData::HELPrct))
expect_error( prop(sex~homeless+substance, data=mosaicData::HELPrct))
expect_error( count(sex~homeless+substance, data=mosaicData::HELPrct))
expect_error( perc(sex~homeless+substance, data=mosaicData::HELPrct))
})
test_that("count/perc/prop wrappers work", {
expect_equivalent( count(~sex, data=mosaicData::HELPrct),
sum(mosaicData::HELPrct$sex == 'female') )
expect_equivalent( prop(~sex, data=mosaicData::HELPrct),
sum(mosaicData::HELPrct$sex == 'female') / nrow(mosaicData::HELPrct))
expect_equivalent( perc(~sex, data=mosaicData::HELPrct),
100 * sum(mosaicData::HELPrct$sex == 'female') / nrow(mosaicData::HELPrct))
expect_equivalent(count(sex ~ homeless, data = mosaicData::HELPrct),
tally(sex ~ homeless ,data = mosaicData::HELPrct)[1,])
expect_equivalent(prop(sex ~ homeless, data = mosaicData::HELPrct),
tally(sex ~ homeless ,data = mosaicData::HELPrct)[1,] / colSums(tally(sex ~ homeless ,data = mosaicData::HELPrct)))
expect_equivalent(perc(sex ~ homeless, data = mosaicData::HELPrct),
100 * prop(sex ~ homeless, data = mosaicData::HELPrct))
})
test_that("... passes through to table()", {
x <<- c(1,2,2,3,3,3,NA,NA)
expect_equivalent( tally(~x), table(x, useNA = "ifany") )
expect_equivalent( tally(~x, useNA='ifany'), table(x, useNA = "ifany") )
expect_equivalent( tally(~x, useNA='no'), table(x, useNA = "no") )
expect_equivalent( tally(~x, useNA='no'), table(x, useNA = "no") )
expect_equivalent( tally(~x[1:5], useNA='always'), table(x[1:5], useNA = "always") )
expect_equivalent( length(tally(~x, useNA='ifany', margins=TRUE) ), 5 )
expect_equivalent( tally(~x[1:6], useNA='always'), table(x[1:6], useNA = "always") )
})
test_that("formulas work for groups", {
expect_equivalent(
tally(sex ~ homeless, groups = substance, data = mosaicData::HELPrct),
tally(sex ~ homeless, groups = ~ substance, data = mosaicData::HELPrct)
)
expect_equivalent(
tally(~ homeless, groups = substance, data = mosaicData::HELPrct),
tally(~ homeless, groups = ~ substance, data = mosaicData::HELPrct)
)
})
context('Count Expansion')
test_that("Count works", {
expect_equal(
count( ~sex | substance, data = mosaicData::HELPrct),
c(n_female.alcohol = 36L, n_female.cocaine = 41L, n_female.heroin = 30L))
expect_equal(
mosaicCore::count( mosaicData::HELPrct, sort =TRUE),
data.frame(n = 453L)
)
})
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.