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 #2571 transform_range: implement transform_range() #2587

Merged
merged 16 commits into from
Dec 5, 2024

Conversation

bundfussr
Copy link
Collaborator

@bundfussr bundfussr commented Nov 29, 2024

Thank you for your Pull Request! We have developed this task checklist from the Development Process Guide to help with the final steps of the process. Completing the below tasks helps to ensure our reviewers can maximize their time on your code as well as making sure the admiral codebase remains robust and consistent.

Please check off each taskbox as an acknowledgment that you completed the task or check off that it is not relevant to your Pull Request. This checklist is part of the Github Action workflows and the Pull Request will not be merged into the main branch until you have checked off each task.

  • Place Closes #<insert_issue_number> into the beginning of your Pull Request Title (Use Edit button in top-right if you need to update)
  • Code is formatted according to the tidyverse style guide. Run styler::style_file() to style R and Rmd files
  • Updated relevant unit tests or have written new unit tests, which should consider realistic data scenarios and edge cases, e.g. empty datasets, errors, boundary cases etc. - See Unit Test Guide
  • If you removed/replaced any function and/or function parameters, did you fully follow the deprecation guidance?
  • Review the Cheat Sheet. Make any required updates to it by editing the file inst/cheatsheet/admiral_cheatsheet.pptx and re-upload a PDF and a PNG version of it to the same folder. (The PNG version can be created by taking a screenshot of the PDF version.)
  • Update to all relevant roxygen headers and examples, including keywords and families. Refer to the categorization of functions to tag appropriate keyword/family.
  • Run devtools::document() so all .Rd files in the man folder and the NAMESPACE file in the project root are updated appropriately
  • Address any updates needed for vignettes and/or templates
  • Update NEWS.md under the header # admiral (development version) if the changes pertain to a user-facing function (i.e. it has an @export tag) or documentation aimed at users (rather than developers). A Developer Notes section is available in NEWS.md for tracking developer-facing issues.
  • Build admiral site pkgdown::build_site() and check that all affected examples are displayed correctly and that all new functions occur on the "Reference" page.
  • Address or fix all lintr warnings and errors - lintr::lint_package()
  • Run R CMD check locally and address all errors and warnings - devtools::check()
  • Link the issue in the Development Section on the right hand side.
  • Address all merge conflicts and resolve appropriately
  • Pat yourself on the back for a job well done! Much love to your accomplishment!

@bundfussr bundfussr linked an issue Nov 29, 2024 that may be closed by this pull request
Copy link

github-actions bot commented Nov 29, 2024

Code Coverage

Package Line Rate Health
admiral 97%
Summary 97% (5102 / 5256)

@bundfussr bundfussr changed the title Closes #2571 transform_range: implement transform_scale() Closes #2571 transform_range: implement transform_range() Nov 29, 2024
NEWS.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@manciniedoardo manciniedoardo left a comment

Choose a reason for hiding this comment

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

Thanks @bundfussr - no concerns about the function or its roxygen - looks good to me.

Wondering if, for completeness, you could also please add a quick mention for the function (no code required) here? This might increase chances users come across it when doing questionnaires, which is where this originally came from anyway.

R/transform_range.R Show resolved Hide resolved
outside_range = "NA") {
# Function argument checks
assert_numeric_vector(source)
assert_numeric_vector(source_range)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Would be nice here to also check if source_range and target_range are of length 2, but it seems assert_numeric_vector() doesn't have an optional length argument. I think that would be nice to add though. What do you think? Too much?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, I've enhanced assert_numeric_vector() in admiraldev (see pharmaverse/admiraldev#473) and updated the calls here.

@bundfussr
Copy link
Collaborator Author

Wondering if, for completeness, you could also please add a quick mention for the function (no code required) here? This might increase chances users come across it when doing questionnaires, which is where this originally came from anyway.

Yes, good idea! I've added a reference in the vignette.

Copy link
Collaborator

@manciniedoardo manciniedoardo left a comment

Choose a reason for hiding this comment

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

Thanks @bundfussr - just one more comment from me

@@ -123,7 +123,8 @@ Depending on the question, `QSORRES == "YES"` is mapped to `QSSTRESN = 0` or
`QSSTRESN = 1`. If the `QSSTRESN` values are not ready to be used for deriving
scores and require transformation, it is recommended that `QSSTRESN` is kept in
the ADaM dataset for traceability, and the transformed value is stored in
`AVAL`, since that's what will be used for the score calculation.
`AVAL`, since that's what will be used for the score calculation. The
Copy link
Collaborator

Choose a reason for hiding this comment

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

Sorry I've changed my opinion slightly - on review, I think this line would sound better in its own little section, maybe "Transformed Items"? Below "Original Items" but before "Scales and Scores" - then you could mention that sometimes questionnaire items get transformed to a different scale (e.g. 0-100) and the admiral function transformed_scale() exists for that. But this is not relevant for GAD-7.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

OK, I've added a "Transformed Items" section.

Copy link
Collaborator

@manciniedoardo manciniedoardo left a comment

Choose a reason for hiding this comment

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

LGTM, thanks @bundfussr 😄

.lintr Show resolved Hide resolved
Copy link
Collaborator

@bms63 bms63 left a comment

Choose a reason for hiding this comment

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

Just a few thoughts!!

@bundfussr bundfussr requested a review from bms63 December 5, 2024 09:43
@bms63
Copy link
Collaborator

bms63 commented Dec 5, 2024

Thanks @bundfussr !!

@bms63 bms63 merged commit 59b7db8 into main Dec 5, 2024
19 checks passed
@bms63 bms63 deleted the 2571_transform_range branch December 5, 2024 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature Request: Implement transform_range()
3 participants