Skip to content

Commit

Permalink
progress
Browse files Browse the repository at this point in the history
  • Loading branch information
ddsjoberg committed Jul 8, 2024
1 parent 0f7b271 commit 36deacc
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
9 changes: 9 additions & 0 deletions R/ard_categorical.survey.design.R
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ ard_categorical.survey.design <- function(data,
}
)

# return note about column names that result in errors -----------------------
if (any(by %in% c("variable", "variable_level"))) {
cli::cli_abort(
"The {.arg by} argument cannot include variables named {.val {c('variable', 'variable_level')}}",
call = get_cli_abort_call()
)
}


# calculate counts -----------------------------------------------------------
# this tabulation accounts for unobserved combinations
svytable_counts <- .svytable_counts(data, variables, by, denominator)
Expand Down
8 changes: 8 additions & 0 deletions tests/testthat/_snaps/ard_categorical.survey.design.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,11 @@
! Column "Class" is all missing and cannot be tabulated.
i Only columns of class <logical> and <factor> can be tabulated when all values are missing.

# ard_categorical.survey.design(by) messages about protected names

Code
ard_categorical(svy_trial, by = variable, variables = stage)
Condition
Error in `ard_categorical()`:
! The `by` argument cannot include variables named "variable" and "variable_level"

16 changes: 16 additions & 0 deletions tests/testthat/test-ard_categorical.survey.design.R
Original file line number Diff line number Diff line change
Expand Up @@ -1172,3 +1172,19 @@ test_that("ard_categorical.survey.design() works with variables with only 1 leve
)
expect_invisible(cards::check_ard_structure(ard_svy_cat_cell, method = FALSE))
})


test_that("ard_categorical.survey.design(by) messages about protected names", {
svy_trial <-
survey::svydesign(
ids = ~1,
data = gtsummary::trial |> dplyr::mutate(variable = trt, variable_level = grade),
weights = ~1
)

expect_snapshot(
error = TRUE,
ard_categorical(svy_trial, by = variable, variables = stage)
)

})

0 comments on commit 36deacc

Please sign in to comment.