Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closes #2468 fix_derive_vars_crit_flag: create correct numeric flag #2616

Merged
merged 4 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
- New function `derive_vars_cat()` for deriving pairs of variables or more, e.g.
`AVALCATy` & `AVALCAyN`. (#2480)
- New function `derive_vars_crit_flag()` for deriving criterion flag variables
(`CRITy`, `CRITyFL`, `CRITyFLN`). (#2468)
(`CRITy`, `CRITyFL`, `CRITyFN`). (#2468)
- New function `transform_range()` to transform values from a source range to a
target range. (#2571)
- Replace use of `data("sdtm")` with `sdtm <- pharmaverse::sdtm` in templates and vignettes. (#2498)
Expand Down
14 changes: 7 additions & 7 deletions R/derive_vars_crit_flag.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#' Derive Criterion Flag Variables `CRITy`, `CRITyFL`, and `CRITyFLN`
#' Derive Criterion Flag Variables `CRITy`, `CRITyFL`, and `CRITyFN`
#'
#' @description
#'
Expand Down Expand Up @@ -49,12 +49,12 @@
#' *Permitted Values*: `TRUE`, `FALSE`
#' @param create_numeric_flag Create a numeric flag?
#'
#' If set to `TRUE`, the `CRITyFLN` variable is created. It is set to `1` if
#' If set to `TRUE`, the `CRITyFN` variable is created. It is set to `1` if
#' `CRITyFL == "Y"`, it set to `0` if `CRITyFL == "N"`, and to `NA` otherwise.
#'
#' *Permitted Values*: `TRUE`, `FALSE`
#' @return The input dataset with the variables `CRITy`, `CRITyFL`, and
#' optionally `CRITyFLN` added.
#' optionally `CRITyFN` added.
#'
#' @family der_bds_findings
#' @keywords der_bds_findings
Expand Down Expand Up @@ -110,10 +110,10 @@ derive_vars_crit_flag <- function(dataset,

if (values_yn) {
crityfl_no <- "N"
crityfln_no <- 0L
crityfn_no <- 0L
} else {
crityfl_no <- NA_character_
crityfln_no <- NA_integer_
crityfn_no <- NA_integer_
}

tryCatch(
Expand Down Expand Up @@ -154,9 +154,9 @@ derive_vars_crit_flag <- function(dataset,
)

if (create_numeric_flag) {
new_critflnvar <- paste0("CRIT", as.character(crit_nr), "FLN")
new_critfnvar <- paste0("CRIT", as.character(crit_nr), "FN")
dataset <- dataset %>% mutate(
!!new_critflnvar := yn_to_numeric(!!sym(new_critflvar))
!!new_critfnvar := yn_to_numeric(!!sym(new_critflvar))
)
}
dataset
Expand Down
6 changes: 3 additions & 3 deletions man/derive_vars_crit_flag.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 10 additions & 10 deletions tests/testthat/test-derive_vars_crit_flag.R
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ test_that("derive_vars_crit_flag Test 1: works with defaults", {
## Test 2: create numeric flag ----
test_that("derive_vars_crit_flag Test 2: create numeric flag", {
expected <- tibble::tribble(
~AVAL, ~CRIT1FL, ~CRIT1FLN, ~CRIT1,
23, NA_character_, NA_real_, NA_character_,
42, "Y", 1, "AVAL > 40",
NA, NA_character_, NA_real_, NA_character_
~AVAL, ~CRIT1FL, ~CRIT1FN, ~CRIT1,
23, NA_character_, NA_real_, NA_character_,
42, "Y", 1, "AVAL > 40",
NA, NA_character_, NA_real_, NA_character_
)

expect_dfs_equal(
Expand All @@ -42,12 +42,12 @@ test_that("derive_vars_crit_flag Test 2: create numeric flag", {
## Test 3: using values Y and N ----
test_that("derive_vars_crit_flag Test 3: using values Y and N", {
expected <- tibble::tribble(
~PARAMCD, ~AVAL, ~CRIT2FL, ~CRIT2FLN, ~CRIT2,
"AST", 23, "N", 0, "AST > 40",
"AST", 42, "Y", 1, "AST > 40",
"AST", NA, NA_character_, NA_real_, "AST > 40",
"ALT", 26, "N", 0, "ALT > 40",
"ALT", 56, "Y", 1, "ALT > 40",
~PARAMCD, ~AVAL, ~CRIT2FL, ~CRIT2FN, ~CRIT2,
"AST", 23, "N", 0, "AST > 40",
"AST", 42, "Y", 1, "AST > 40",
"AST", NA, NA_character_, NA_real_, "AST > 40",
"ALT", 26, "N", 0, "ALT > 40",
"ALT", 56, "Y", 1, "ALT > 40",
)

expect_dfs_equal(
Expand Down
10 changes: 5 additions & 5 deletions vignettes/bds_finding.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ otherwise specified.*
* [Assign Treatment (`TRTA`, `TRTP`)](#treatment)
* [Assign `ASEQ`](#aseq)
* [Derive Categorization Variables (`AVALCATy`)](#cat)
* [Derive Criterion Variables (`CRITy`, `CRITyFL`, `CRITyFLN`)](#crit_vars)
* [Derive Criterion Variables (`CRITy`, `CRITyFL`, `CRITyFN`)](#crit_vars)
* [Add ADSL variables](#adsl_vars)
* [Derive New Rows](#additional)
* [Add Labels and Attributes](#attributes)
Expand Down Expand Up @@ -879,9 +879,9 @@ dataset_vignette(
)
```

## Derive Criterion Variables (`CRITy`, `CRITyFL`, `CRITyFLN`) {#crit_vars}
## Derive Criterion Variables (`CRITy`, `CRITyFL`, `CRITyFN`) {#crit_vars}

For deriving criterion variables (`CRITy`, `CRITyFL`, `CRITyFLN`) `{admiral}`
For deriving criterion variables (`CRITy`, `CRITyFL`, `CRITyFN`) `{admiral}`
provides `derive_vars_crit_flag()`. It ensures that they are derived in an
ADaM-compliant way (see documentation of the function for details).

Expand Down Expand Up @@ -921,7 +921,7 @@ advs <- advs %>%
```{r, eval=TRUE, echo=FALSE}
dataset_vignette(
arrange(advs, USUBJID, AVISITN, ATPTN, PARAMCD),
display_vars = exprs(USUBJID, PARAMCD, AVAL, CHG, CRIT1, CRIT1FL, CRIT1FLN),
display_vars = exprs(USUBJID, PARAMCD, AVAL, CHG, CRIT1, CRIT1FL, CRIT1FN),
filter = PARAMCD %in% c("DIABP", "SYSBP")
)
```
Expand All @@ -946,7 +946,7 @@ advs <- advs %>%
```{r, eval=TRUE, echo=FALSE}
dataset_vignette(
arrange(advs, USUBJID, AVISITN, ATPTN),
display_vars = exprs(USUBJID, PARAMCD, AVAL, CHG, CRIT2, CRIT2FL, CRIT2FLN),
display_vars = exprs(USUBJID, PARAMCD, AVAL, CHG, CRIT2, CRIT2FL, CRIT2FN),
filter = PARAMCD == "SYSBP"
)
```
Expand Down
Loading