Skip to content

Commit 46199f4

Browse files
committed
add res NA check and update test to use safetyData::adam_Adsl
1 parent ca9d63f commit 46199f4

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

R/data_prep.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@
99
#'
1010
#' @return A list containing datasets for patient information and plots
1111
pt_info_data_filter <- function(df, subjid_var, columns, selected_key) {
12-
1312
res <- NA
13+
res_logical_check <- FALSE
1414
row_index <- which(df[[subjid_var]] == selected_key)
1515
if (length(row_index) == 1) {
1616
res <- df[row_index, columns]
17+
res_logical_check <- TRUE
1718
}
1819

1920
# re-apply data labels for data.frames
20-
if (! inherits(df, "tbl") && inherits(df, "data.frame")) {
21+
if (res_logical_check && ! inherits(df, "tbl") && inherits(df, "data.frame")) {
2122
df_labels <- structure(get_labels(df), names = names(df))[columns] #extract and save labels
2223
# re-apply saved labels
2324
for (i in columns) {
2425
attr(res[[i]], "label") <- df_labels[[i]]
2526
}
2627
}
27-
2828
return(res)
2929
}
3030

tests/testthat/test-data_prep.R

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
test_that("pt_info_data_filter preserves data.frame labels", {
22

3-
df <- datasets::iris |>
4-
dplyr::group_by(Species) |>
5-
dplyr::slice(1) |>
6-
as.data.frame()
3+
df <- as.data.frame(safetyData::adam_adsl)
4+
mock_labels <- c(LETTERS, letters)
75

86
for (i in seq_len(ncol(df))) {
9-
attr(df[[i]], "label") <- LETTERS[i]
7+
attr(df[[i]], "label") <- mock_labels[i]
108
}
119

1210
expected_labels <- get_labels(df)
1311

1412
output <- pt_info_data_filter(
15-
df, subjid_var = "Species", columns = names(df), selected_key = "setosa"
13+
df, subjid_var = "USUBJID", columns = names(df), selected_key = "01-701-1015"
1614
)
1715

1816
testthat::expect_identical(get_labels(output), expected_labels)

0 commit comments

Comments
 (0)