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

add error message for missing strata #227

Open
wants to merge 94 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
88a24bd
add error message for missing strata
chrisorwa Aug 1, 2024
5ec8ec0
run document() for est.incidence.by
chrisorwa Aug 1, 2024
b82e3b5
add any() to is.element()
chrisorwa Aug 4, 2024
3c271ee
add test
chrisorwa Aug 7, 2024
ee3d7ca
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Aug 12, 2024
39ea75b
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Aug 14, 2024
0cb88d6
modify error messaging
chrisorwa Aug 14, 2024
97efcf3
Merge branch 'add-user-error-message-for-missing-strata' of https://g…
chrisorwa Aug 14, 2024
b3523c7
make changes to tests and est.incidence.by
chrisorwa Aug 21, 2024
c09df9b
add purrr to DESCRIPTION
chrisorwa Aug 22, 2024
42c7af6
modify error message
chrisorwa Aug 26, 2024
0f36e94
correct errors
chrisorwa Aug 26, 2024
f97218a
remove testthat from DESCRIPTION
chrisorwa Aug 26, 2024
757676e
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Aug 27, 2024
13be640
in progress
d-morrison Aug 27, 2024
87625a1
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Sep 10, 2024
3bf79b3
lint file
chrisorwa Sep 10, 2024
927911a
lint tests
chrisorwa Sep 11, 2024
655985b
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Sep 12, 2024
8302735
increment version
chrisorwa Sep 17, 2024
47dd63a
line break
d-morrison Sep 23, 2024
2ef8e8e
Merge branch 'main' into add-user-error-message-for-missing-strata
d-morrison Sep 23, 2024
6b365c0
increment version
d-morrison Sep 24, 2024
7cac80b
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Sep 29, 2024
cc000f7
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Sep 30, 2024
d3a8b8c
correct conflicts
chrisorwa Oct 13, 2024
c22ed3c
requested changes
chrisorwa Oct 13, 2024
1eb1441
push additional changes to tests
chrisorwa Oct 15, 2024
58e4598
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Oct 18, 2024
bc7fe55
Merge branch 'main' into add-user-error-message-for-missing-strata
chrisorwa Oct 22, 2024
98c881d
reduce tests
Oct 22, 2024
474d54c
Merge branch 'add-user-error-message-for-missing-strata' of https://g…
Oct 22, 2024
a2fc79a
reduce num_cores to 1
chrisorwa Oct 22, 2024
05aabc1
add snapshots
chrisorwa Oct 22, 2024
c73eb38
linting
chrisorwa Oct 22, 2024
a78d82a
correct tests
chrisorwa Oct 23, 2024
23c8ec2
Increment version number to 1.2.0.9019
chrisorwa Oct 23, 2024
5107025
more edits
d-morrison Nov 4, 2024
c0bd521
in progress
d-morrison Nov 4, 2024
3c8b8b1
lots
d-morrison Nov 5, 2024
cebb5be
more cleanup
d-morrison Nov 5, 2024
a5f4ff6
update documentation
d-morrison Nov 5, 2024
7dc8a6c
- added {and} package
d-morrison Nov 5, 2024
7cb6af9
cleanup
d-morrison Nov 5, 2024
41435d6
add `glue` and `stringr`
d-morrison Nov 5, 2024
737a1c6
add test to `check_strata()`
d-morrison Nov 5, 2024
7ba202b
remove redundant example data
d-morrison Nov 5, 2024
4232c42
wrap
d-morrison Nov 5, 2024
78af1c6
Merge branch 'simplifications' into use-test-data
d-morrison Nov 5, 2024
4b496de
Merge pull request #316 from UCD-SERG/use-test-data
d-morrison Nov 5, 2024
8478415
remove redundant files
d-morrison Nov 5, 2024
9c9626f
delete unused files
d-morrison Nov 5, 2024
28cdd72
Merge remote-tracking branch 'origin/use-test-data' into simplifications
d-morrison Nov 5, 2024
154fb5e
fixes
d-morrison Nov 5, 2024
a73c8db
Merge branch 'lint-changed-faster' into simplifications
d-morrison Nov 5, 2024
0fa2294
Merge pull request #318 from UCD-SERG/use-test-data
d-morrison Nov 5, 2024
6b362f6
Merge branch 'main' into add-user-error-message-for-missing-strata
d-morrison Nov 5, 2024
cb9c6fd
Merge branch 'add-user-error-message-for-missing-strata' into simplif…
d-morrison Nov 5, 2024
2dcff93
fix
d-morrison Nov 5, 2024
f2cce72
increase snapshot tolerance
d-morrison Nov 5, 2024
543788f
lint
d-morrison Nov 5, 2024
3682fac
document
d-morrison Nov 5, 2024
2d251c4
Merge remote-tracking branch 'origin/main' into simplifications
d-morrison Nov 5, 2024
7ad67e7
Increment version number to 1.2.0.9022
d-morrison Nov 5, 2024
d8385bb
remove duplicate line
d-morrison Nov 5, 2024
c017571
try to fix lint
d-morrison Nov 5, 2024
3ae6bed
Merge branch 'main' into add-user-error-message-for-missing-strata
d-morrison Nov 5, 2024
201853d
more linting
d-morrison Nov 5, 2024
c83e0cc
Merge branch 'add-user-error-message-for-missing-strata' into simplif…
d-morrison Nov 5, 2024
266bae1
lint
d-morrison Nov 6, 2024
c3d18bf
Merge branch 'simplifications' of https://github.com/UCD-SERG/serocal…
d-morrison Nov 6, 2024
2587245
new test to hopefully complete patch coverage
d-morrison Nov 6, 2024
c3dfcbd
skip parallel cores test if only one core available
d-morrison Nov 6, 2024
6fba6a8
added test of verbose output
d-morrison Nov 6, 2024
2e395ad
cleanup
d-morrison Nov 6, 2024
491cda6
test verbose and multicore
d-morrison Nov 6, 2024
8742288
more checks
d-morrison Nov 6, 2024
23a8baa
cleaning up time output
d-morrison Nov 6, 2024
5c98bd5
fixes
d-morrison Nov 6, 2024
1a73533
formatting
d-morrison Nov 6, 2024
ae4fc68
Merge branch 'main' into add-user-error-message-for-missing-strata
d-morrison Nov 6, 2024
d99d4da
Merge branch 'add-user-error-message-for-missing-strata' into simplif…
d-morrison Nov 6, 2024
cf0070b
Update R/est.incidence.by.R
chrisorwa Nov 6, 2024
33dc191
Update R/est.incidence.by.R
chrisorwa Nov 6, 2024
c984c18
additional changes
chrisorwa Nov 6, 2024
9122ae8
Merge branch 'add-user-error-message-for-missing-strata' of https://g…
chrisorwa Nov 6, 2024
177d334
change version number
chrisorwa Nov 6, 2024
f953b3b
make changes to NEWS.md
chrisorwa Nov 6, 2024
8dc73c8
Increment version number to 1.2.0.9022
chrisorwa Nov 6, 2024
15a32d8
Merge branch 'add-user-error-message-for-missing-strata' into simplif…
d-morrison Nov 6, 2024
15f2bc2
Merge pull request #245 from UCD-SERG/simplifications
chrisorwa Nov 6, 2024
4727731
Merge branch 'main' into add-user-error-message-for-missing-strata
d-morrison Nov 6, 2024
4e2b8e9
make changes
chrisorwa Nov 7, 2024
1cddf51
Merge branch 'add-user-error-message-for-missing-strata' of https://g…
chrisorwa Nov 7, 2024
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
23 changes: 22 additions & 1 deletion R/est.incidence.by.R
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
#' curve_params = curve,
#' noise_params = noise %>% filter(Country == "Pakistan"),
#' antigen_isos = c("HlyE_IgG", "HlyE_IgA"),
#' #num_cores = 8 # Allow for parallel processing to decrease run time
#' # num_cores = 8 # Allow for parallel processing to decrease run time
#' iterlim = 5 # limit iterations for the purpose of this example
#' )
#'
Expand Down Expand Up @@ -101,6 +101,27 @@ est.incidence.by <- function(
return(to_return)
}

if (!any(is.element(strata, pop_data %>% names()))) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should any() be all()?

Copy link
Collaborator Author

@chrisorwa chrisorwa Aug 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be all(). The change has been made.

# search strata variable from pop_data
strata_var <-
grep(
x = pop_data %>% names(),
value = TRUE,
pattern = strata,
Copy link
Member

@d-morrison d-morrison Aug 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what happens here if strata has multiple entries in it? for example, strata = c("Country", "catch")? Please check this scenario and adjust this code if needed (probably, try to match each missing stratum variable separately).

Copy link
Collaborator Author

@chrisorwa chrisorwa Aug 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is in order and adds complexity to Issue #233. For example, if strata = c("age", "Country"), I had opted to use regex paste0("^", strata) to capture only columns that begin with age to avoid and avoid words such as village.

Addendum:
Never mind, I found a solution to it.

ignore.case = TRUE
)

cli::cli_abort(
class = "missing_var",
message = c(
"Can't find the column {.arg {strata}} in {.arg pop_data}.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please inform the user that this error relates to their input for the strata argument, so they know which input to fix.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been implemented.

if (length(strata_var) > 0) {
"i" <- "Did you mean {.var {strata_var}}."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please end questions with a question mark instead of a period.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been implemented.

}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add a test that covers this case

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been implemented.

)
)
}

.checkStrata(data = pop_data, strata = strata)

.errorCheck(
Expand Down
2 changes: 1 addition & 1 deletion man/est.incidence.by.Rd

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

33 changes: 33 additions & 0 deletions tests/testthat/test-est.incidence.R
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,36 @@ test_that("`est.incidence()` produces expected results", {

expect_equal(est_true, est_false)
})

test_that("est.incidence() aborts when strata is missing in `pop_data`", {
# get pop data
xs_data <- load_pop_data(
file_path = "https://osf.io/download//n6cp3/",
age = "Age",
value = "result",
id = "index_id",
standardize = TRUE
) %>%
filter(Country == "Pakistan") %>%
slice_head(n = 100)

# get noise data
noise <- load_noise_params("https://osf.io/download//hqy4v/") %>%
filter(Country == "Pakistan")

# get curve data
curve <- load_curve_params("https://osf.io/download/rtw5k/")

expect_error(
object = est.incidence.by(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we testing est.incidence.by() in the test file for est.incidence()? Please be careful to keep these tests properly organized.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add a test in which strata contains multiple elements that don't exactly match the columns of pop_data

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have separated est.incidence and est.incidence.by into different scripts. In addition, I have added a test for multiple strata in est.incidence.by.

strata = c("catch"),
pop_data = xs_data %>% filter(Country == "Pakistan"),
curve_params = curve,
noise_params = noise %>% filter(Country == "Pakistan"),
antigen_isos = c("HlyE_IgG", "HlyE_IgA"),
# num_cores = 8 # Allow for parallel processing to decrease run time
iterlim = 5 # limit iterations for the purpose of this example
),
class = "missing_var"
)
})
Loading