software-review
software-review copied to clipboard
cancerprof: API Client for extracting data from State Cancer Profiles
Submitting Author Name: Brian Park Submitting Author Github Handle: @realbp Repository: https://github.com/getwilds/cancerprof Version submitted: 0.1.0 Submission type: Standard Editor: @ldecicco-USGS Reviewers: @jromanowska, @ginberg
Archive: TBD Version accepted: TBD Language: en
- Paste the full DESCRIPTION file inside a code block below:
Package: cancerprof
Title: API Client for State Cancer Profiles
Version: 0.1.0
Authors@R:
person("Brian", "Park", , "[email protected]", role = c("aut", "cre"),
comment = c(ORCID = "0009-0008-8274-3057"))
Description: An interface for retrieving data from the NIH NCI State Cancer Profiles API <https://statecancerprofiles.cancer.gov/>. State Cancer Profiles provides information about data topics including demographics, screening and risk factors, cancer incidence, and mortality for US states, counties, and health service areas.
License: MIT + file LICENSE
URL: https://github.com/getwilds/cancerprof, https://getwilds.org/cancerprof/
BugReports: https://github.com/getwilds/cancerprof/issues
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
Imports:
cdlTools,
cli,
dplyr,
httr2,
magrittr,
rlang,
stringr,
utils
Suggests:
knitr,
rmarkdown,
testthat
Config/testthat/edition: 3
VignetteBuilder: knitr
Depends:
R (>= 2.10)
Scope
-
Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):
- [x] data retrieval
- [ ] data extraction
- [ ] data munging
- [ ] data deposition
- [ ] data validation and testing
- [ ] workflow automation
- [ ] version control
- [ ] citation management and bibliometrics
- [ ] scientific software wrappers
- [ ] field and lab reproducibility tools
- [ ] database software bindings
- [ ] geospatial data
- [ ] text analysis
-
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
cancerprof allows users to retrieve data from State Cancer Profiles for programmable analysis. cancerprof makes accessing the undocumented API from State Cancer Profiles intuitive and easy.
- Who is the target audience and what are scientific applications of this package?
The target audience for cancerprof is anyone who wants to access data from state cancer profiles to conduct programmable analysis without having to navigate the complex nature of its GUI. Specifically, cancer researchers could use cancerprof to conduct reproducable analysis of cancer crossed references with a variety of topics found within the data from state cancer profiles.
- Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category?
Currently there are no other softwares or packages that extracts the publicly available data from State Cancer Profiles.
- (If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research?
Cancerprof does not breach any data privacy laws and complies with the ethics policies of ropensci.
- If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.
https://github.com/ropensci/software-review/issues/635
- Explain reasons for any
pkgcheck
items which your package is unable to pass.
Cancerprof passes all pkgcheck items
Technical checks
Confirm each of the following by checking the box.
- [x] I have read the rOpenSci packaging guide.
- [x] I have read the author guide and I expect to maintain this package for at least 2 years or to find a replacement.
This package:
- [x] does not violate the Terms of Service of any service it interacts with.
- [x] has a CRAN and OSI accepted license.
- [x] contains a README with instructions for installing the development version.
- [x] includes documentation with examples for all functions, created with roxygen2.
- [x] contains a vignette with examples of its essential functions and uses.
- [x] has a test suite.
- [x] has continuous integration, including reporting of test coverage.
Publication options
-
[x] Do you intend for this package to go on CRAN?
-
[ ] Do you intend for this package to go on Bioconductor?
-
[ ] Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:
MEE Options
- [x] The package is novel and will be of interest to the broad readership of the journal.
- [ ] The manuscript describing the package is no longer than 3000 words.
- [ ] You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
- (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
- (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
- (Please do not submit your package separately to Methods in Ecology and Evolution)
Code of conduct
- [x] I agree to abide by rOpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help
for help.
:rocket:
Editor check started
:wave:
Checks for cancerprof (v0.1.0)
git hash: 36706151
- :heavy_check_mark: Package name is available
- :heavy_check_mark: has a 'codemeta.json' file.
- :heavy_check_mark: has a 'contributing' file.
- :heavy_check_mark: uses 'roxygen2'.
- :heavy_check_mark: 'DESCRIPTION' has a URL field.
- :heavy_check_mark: 'DESCRIPTION' has a BugReports field.
- :heavy_check_mark: Package has at least one HTML vignette
- :heavy_check_mark: All functions have examples.
- :heavy_check_mark: Package has continuous integration checks.
- :heavy_check_mark: Package coverage is 97.9%.
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
Package License: MIT + file LICENSE
1. Package Dependencies
Details of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
type | package | ncalls |
---|---|---|
internal | base | 232 |
internal | cancerprof | 66 |
internal | stats | 28 |
internal | graphics | 8 |
imports | magrittr | 122 |
imports | dplyr | 64 |
imports | cli | 55 |
imports | rlang | 25 |
imports | httr2 | 8 |
imports | utils | 2 |
imports | cdlTools | 1 |
imports | stringr | 1 |
suggests | knitr | NA |
suggests | rmarkdown | NA |
suggests | testthat | NA |
linking_to | NA | NA |
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.
base
list (76), c (56), structure (28), body (20), class (12), url (9), options (8), paste0 (8), new.env (5), as.raw (4), date (4), which (2)
magrittr
%>% (122)
cancerprof
create_request (20), demo_crowding (1), demo_education (1), demo_food (1), demo_income (1), demo_insurance (1), demo_language (1), demo_mobility (1), demo_population (1), demo_poverty (1), demo_svi (1), demo_workforce (1), dput_resp_demo (1), dput_resp_incd (1), dput_resp_mortality (1), dput_resp_risk (1), fips_scp (1), get_area (1), handle_age (1), handle_alcohol (1), handle_cancer (1), handle_crowding (1), handle_datatype (1), handle_diet_exercise (1), handle_education (1), handle_food (1), handle_income (1), handle_insurance (1), handle_mobility (1), handle_non_english (1), handle_population (1), handle_poverty (1), handle_race (1), handle_screening (1), handle_sex (1), handle_smoking (1), handle_stage (1), handle_svi (1), handle_vaccine (1), handle_women_health (1), handle_workforce (1), handle_year (1), incidence_cancer (1), mortality_cancer (1), process_resp (1), risk_alcohol (1), risk_colorectal_screening (1)
dplyr
across (26), mutate (26), mutate_all (4), all_of (3), na_if (3), filter (2)
cli
cli_abort (55)
stats
setNames (28)
rlang
is_na (23), sym (2)
graphics
frame (8)
httr2
request (8)
utils
data (1), read.csv (1)
cdlTools
fips (1)
stringr
str_pad (1)
2. Statistical Properties
This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.
Details of statistical properties (click to open)
The package has:
- code in R (100% in 54 files) and
- 1 authors
- 4 vignettes
- no internal data file
- 8 imported packages
- 19 exported functions (median 26 lines of code)
- 83 non-exported functions in R (median 22 lines of code)
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages The following terminology is used:
-
loc
= "Lines of Code" -
fn
= "function" -
exp
/not_exp
= exported / not exported
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown()
function
The final measure (fn_call_network_size
) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile.
measure | value | percentile | noteworthy |
---|---|---|---|
files_R | 54 | 96.4 | |
files_vignettes | 4 | 95.3 | |
files_tests | 45 | 99.0 | |
loc_R | 2611 | 88.6 | |
loc_vignettes | 492 | 77.7 | |
loc_tests | 1533 | 91.7 | |
num_vignettes | 4 | 96.6 | TRUE |
n_fns_r | 102 | 77.0 | |
n_fns_r_exported | 19 | 65.9 | |
n_fns_r_not_exported | 83 | 80.0 | |
n_fns_per_file_r | 1 | 0.2 | TRUE |
num_params_per_fn | 4 | 54.6 | |
loc_per_fn_r | 22 | 65.5 | |
loc_per_fn_r_exp | 26 | 57.4 | |
loc_per_fn_r_not_exp | 22 | 66.9 | |
rel_whitespace_R | 9 | 75.4 | |
rel_whitespace_vignettes | 39 | 83.5 | |
rel_whitespace_tests | 12 | 84.2 | |
doclines_per_fn_exp | 56 | 69.3 | |
doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
fn_call_network_size | 124 | 82.6 |
2a. Network visualisation
Click to see the interactive network visualisation of calls between objects in package
3. goodpractice
and other checks
Details of goodpractice checks (click to open)
3a. Continuous Integration Badges
GitHub Workflow Results
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
8546148980 | pages build and deployment | success | 13c6cf | 6 | 2024-04-03 |
8546127063 | pkgdown | success | 367061 | 17 | 2024-04-03 |
8546127064 | R-CMD-check | success | 367061 | 181 | 2024-04-03 |
8546127060 | test-coverage | success | 367061 | 19 | 2024-04-03 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following check_fail:
- cyclocomp
Test coverage with covr
Package coverage: 97.93
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
risk_smoking | 106 |
demo_population | 70 |
incidence_cancer | 34 |
mortality_cancer | 29 |
demo_insurance | 27 |
demo_poverty | 27 |
risk_colorectal_screening | 21 |
risk_women_health | 19 |
demo_education | 18 |
Static code analyses with lintr
lintr found the following 102 potential issues:
message | number of times |
---|---|
Avoid using sapply, consider vapply instead, that's type safe | 24 |
Lines should not be more than 80 characters. | 78 |
Package Versions
package | version |
---|---|
pkgstats | 0.1.3.11 |
pkgcheck | 0.1.2.21 |
Editor-in-Chief Instructions:
This package is in top shape and may be passed on to a handling editor
@ropensci-review-bot assign @ldecicco-USGS as editor
Assigned! @ldecicco-USGS is now the editor
Editor checks:
- [x] Documentation: The package has sufficient documentation available online (README, pkgdown docs) to allow for an assessment of functionality and scope without installing the package. In particular,
- [x] Is the case for the package well made?
- [x] Is the reference index page clear (grouped by topic if necessary)?
- [x] Are vignettes readable, sufficiently detailed and not just perfunctory?
- [x] Fit: The package meets criteria for fit and overlap.
- [x] Installation instructions: Are installation instructions clear enough for human users?
- [x] Tests: If the package has some interactivity / HTTP / plot production etc. are the tests using state-of-the-art tooling?
- [x] Contributing information: Is the documentation for contribution clear enough e.g. tokens for tests, playgrounds?
- [x] License: The package has a CRAN or OSI accepted license.
- [x] Project management: Are the issue and PR trackers in a good shape, e.g. are there outstanding bugs, is it clear when feature requests are meant to be tackled?
Editor comments
There could be more information added to the README, although the bare minimum to meet our criteria is there.
In the examples I tried, my first thought was it might be nice to convert some of the text. For instance:
x <- demo_income(
area = "usa",
areatype = "state",
income = "median family income",
race = "all races (includes hispanic)"
)
head(x$Rank)
[1] "52 of 52" "51 of 52" "50 of 52" "49 of 52" "48 of 52" "47 of 52"
Seems like c(52, 51, 50, etc) would be a more useful output to an R user. You'd probably want/need another column or something to give the user the " of 52". Not mandatory, could be handy though (maybe a simple function to offer users outside of the function? or a simple example within the examples for how to extract the rank number).
@ropensci-review-bot seeking reviewers
Please add this badge to the README of your package repository:
[](https://github.com/ropensci/software-review/issues/637)
Furthermore, if your package does not have a NEWS.md file yet, please create one to capture the changes made during the review process. See https://devguide.ropensci.org/releasing.html#news
Thank you for the feedback! I will make those changes in the upcoming version of cancerprof. I have added the ropensci badge and created a NEWS.md file.
What are the next steps in the review process?
I'm asking around to find 2 reviewers. Hopefully that shouldn't take too long!
Great, thank you for a speedy response!
@ropensci-review-bot assign @jromanowska as reviewer
@jromanowska added to the reviewers list. Review due date is 2024-05-20. Thanks @jromanowska for accepting to review! Please refer to our reviewer guide.
rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more.
@jromanowska: If you haven't done so, please fill this form for us to update our reviewers records.
Hi! Just for your information: I'll start with the review soon. There are many free days in May here, in Norway, but I hope I will not need any extension of the review deadline. :crossed_fingers:
@ldecicco-USGS , I just wanted to notify that {goodpractice} package that is dependency for {pkgcheck} has been archived by CRAN (https://cran.r-project.org/web//packages/goodpractice/index.html) so I couldn't install {pkgcheck} and had to install the GitHub version of {goodpractice} by hand.
Hi, I'm having problems installing the package:
pak::pak("getwilds/cancerprof")
#> Error: ! error in pak subprocess
#> Caused by error:
#> ! Could not solve package dependencies:
#> * getwilds/cancerprof: ! pkgdepends resolution error for getwilds/cancerprof.
#> Caused by error:
#> ! Bad GitHub credentials, make sure that your GitHub token is valid.
#> Caused by error in `stop(http_error(resp))`:
#> ! Unauthorized (HTTP 401).
devtools::install_github("getwilds/cancerprof")
#> Downloading GitHub repo getwilds/cancerprof@HEAD
#> Installing 3 packages: terra, raster, cdlTools
#> Installing packages into ‘/home/jro049/R/x86_64-pc-linux-gnu-library/4.3’
#> (as ‘lib’ is unspecified)
#> trying URL 'https://cloud.r-project.org/src/contrib/terra_1.7-71.tar.gz'
#> Content type 'application/x-gzip' length 836573 bytes (816 KB)
#> ==================================================
#> downloaded 816 KB
#>
#> trying URL 'https://cloud.r-project.org/src/contrib/raster_3.6-26.tar.gz'
#> Content type 'application/x-gzip' length 576421 bytes (562 KB)
#> ==================================================
#> downloaded 562 KB
#>
#> trying URL 'https://cloud.r-project.org/src/contrib/cdlTools_1.13.tar.gz'
#> Content type 'application/x-gzip' length 43089 bytes (42 KB)
#> ==================================================
#> downloaded 42 KB
#>
#> * installing *source* package ‘terra’ ...
#> ** package ‘terra’ successfully unpacked and MD5 sums checked
#> ** using staged installation
#> configure: CC: gcc
#> configure: CXX: g++ -std=gnu++17
#> checking for gdal-config... no
#> no
#> configure: error: gdal-config not found or not executable.
#> ERROR: configuration failed for package ‘terra’
#> * removing ‘/home/jro049/R/x86_64-pc-linux-gnu-library/4.3/terra’
#> ERROR: dependency ‘terra’ is not available for package ‘raster’
#> * removing ‘/home/jro049/R/x86_64-pc-linux-gnu-library/4.3/raster’
#> ERROR: dependencies ‘raster’, ‘terra’ are not available for package ‘cdlTools’
#> * removing ‘/home/jro049/R/x86_64-pc-linux-gnu-library/4.3/cdlTools’
#>
#> The downloaded source packages are in
#> ‘/tmp/RtmpyrNDzF/downloaded_packages’
#> ── R CMD build ─────────────────────────────────────────────────────────#> ──────────────────────────────────────────────────
#> ✔ checking for file ‘/tmp/RtmpyrNDzF/remotes24d8468ec6bf/getwilds-cancerprof-23dbd98/DESCRIPTION’ ...
#> ─ preparing ‘cancerprof’:
#> ✔ checking DESCRIPTION meta-information
#> ─ checking for LF line-endings in source and make files and shell scripts
#> ─ checking for empty or unneeded directories
#> ─ looking to see if a ‘data/datalist’ file should be added
#> ─ building ‘cancerprof_0.1.0.tar.gz’
#> Warning: invalid uid value replaced by that for user 'nobody'
#>
#> Installing package into ‘/home/jro049/R/x86_64-pc-linux-gnu-library/4.3’
#> (as ‘lib’ is unspecified)
#> ERROR: dependency ‘cdlTools’ is not available for package ‘cancerprof’
#> * removing ‘/home/jro049/R/x86_64-pc-linux-gnu-library/4.3/cancerprof’
#> Warning messages:
#> 1: In i.p(...) : installation of package ‘terra’ had non-zero exit status
#> 2: In i.p(...) : installation of package ‘raster’ had non-zero exit status
#> 3: In i.p(...) :
#> installation of package ‘cdlTools’ had non-zero exit status
#> 4: In i.p(...) :
#> installation of package ‘/tmp/RtmpyrNDzF/file24d821d2b458/cancerprof_0.1.0.tar.gz’ had non-zero exit status
#>
#>
Created on 2024-04-30 with reprex v2.1.0
Do you get the same error if you install terra and raster independently?
install.packages(c("terra", "raster"))
Today I've tried on another computer (also Linux) and the pak
command worked - it actually showed me which system libraries were missing :thinking:
After installing those, I could re-run the pak
without problems. I will write some comments about this installation process and issues in my review, so that other users may be aware.
:calendar: @jromanowska you have 2 days left before the due date for your review (2024-05-20).
Hi @realbp! I'm sorry I haven't found a 2nd reviewer yet. I sent a few inquires out and didn't get responses back. I should have sent a 2nd batch out but that task got buried in my to-do list. Apologies for the delay! I've sent a few more requests out and hopefully we can get this review process (re)kicked off!
Hi, I'm sorry - I need another week to complete the review. May is horrible with lots of free days here in Norway, and a fantastic summer weather this year, leaving too little time for work! :sweat_smile:
@ropensci-review-bot assign @ginberg as reviewer
@ginberg added to the reviewers list. Review due date is 2024-06-12. Thanks @ginberg for accepting to review! Please refer to our reviewer guide.
rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more.
@ginberg: If you haven't done so, please fill this form for us to update our reviewers records.
Thanks for the patience! Great work with {cancerprof}! :raised_hands:
I'm done with reviewing, please check my comments below.
Package Review
-
Briefly describe any working relationship you have (had) with the package authors.
No working relationship. - [x] As the reviewer I confirm that there are no conflicts of interest for me to review this work (if you are unsure whether you are in conflict, please speak to your editor before starting your review).
Documentation
The package includes all the following forms of documentation:
-
[ ] A statement of need: clearly stating problems the software is designed to solve and its target audience in README
- not really - the authors could expand the description by adding 1-2 sentences;
- there is no order in vignettes/articles, so it's difficult to navigate the help page
-
[ ] Installation instructions: for the development version of package and any non-standard dependencies in README
- the required system libraries could be written down (e.g., on Linux, I had to install some separately before installing the package);
- while
pak
is a great package, some people might not use it and try installingcancerprof
viadevtools
which might fail not giving useful information about source of error - the authors could add why they recommend installing viapak
-
[ ] Vignette(s): demonstrating major functionality that runs successfully locally
- I could not launch vignettes locally - it says
no vignettes found
when installed - I tried reading the vignettes on the webpage - I have some comments to those, please check below
- I could not launch vignettes locally - it says
-
[x] Function Documentation: for all exported functions
-
[ ] Examples: (that run successfully locally) for all exported functions
- almost all examples are
not run
- it would be more useful if each example showed actually that the function works; this would also make the documentation better
- almost all examples are
-
[x] Community guidelines: including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with
URL
,BugReports
andMaintainer
(which may be autogenerated viaAuthors@R
).
Functionality
- [x] Installation: Installation succeeds as documented.
- [x] Functionality: Any functional claims of the software have been confirmed.
- [x] Performance: Any performance claims of the software have been confirmed.
- [x] Automated tests: Unit tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
- [ ] Packaging guidelines: The package conforms to the rOpenSci packaging guidelines.
- README could be more detailed, as mentioned above
- webpage is nice (although the vignettes should be changed, see the comments below)
- when checking with
devtools::check()
I get a warning:Warning: program compiled against libxml 210 using older 209
- I'm not sure where it comes from - tests were nicely written, using
testthat
, but maybe thetest-dput*R
files that are in theR
directory should be in thetests
?
Estimated hours spent reviewing: 16
- [x] Should the author(s) deem it appropriate, I agree to be acknowledged as a package reviewer ("rev" role) in the package DESCRIPTION file.
Review Comments
Overall, the package is really useful for batch retrieval of data. The functions are well documented and designed, tests are well written. I have some comments that I hope will improve the usability of both, the package and documentation.
Are there improvements that could be made to the code style?
-
Avoid long lines, e.g., lines 59-63 in
demo-education.R
could be split after each logical operator. This will also improve readability of the if clauses.- run
goodpractice::gp()
to get more tips
- run
-
Running the
styler
package showed that only 4 files could be improved - great work! You don't need to, but you can try that on these files:- R/risk-womens-health.R
- R/risk-smoking.R
- R/demo-poverty.R
- R/demo-population.R
Is there code duplication in the package that should be reduced?
- When dealing with specific text, like the various levels of smoking, try to
gather these in one place.
Currently, these various levels of smoking are defined in bothrisk-smoking.R
andhandle-smoking.R
. This is difficult to maintain. One way to deal with that is to create an environment that is loaded when the package is loaded. Then, you can just grab the entire objects from this environment, without the need for the user to be bothered by these objects. Check here for some more explanation.
Are there user interface improvements that could be made?
-
Use the default values of a function to ease function calling
- if there is only one possible value for a certain argument, implement this
as a default value (I understand that it might change in the future but
it could be default without any problem), e.g.,
demo_language
requires the user to writelanguage = "language isolation"
even if it's the only possible value - the functions that change their required arguments when one of the arguments is chosen are both, difficult to use and difficult to maintain - perhaps you can just give a warning that some arguments are omitted?
- e.g., in
demo_education
, instead of aborting when the user does not provide some arguments, one can give a warning and assume default values - especially in
Risk smoking
there is so many various combinations that it might be difficult to use that function when programmatically fetching data - perhaps you could split this into smaller, more focused functions? - similarly, for some arguments combinations, another argument is required
to be only of a certain value (e.g.,
incidence_cancer
withcancer = ovary
is possible only withsex = "females"
), thus in such cases, if the user provides a wrong argument the function might just return the correct table and issue a warning
- if there is only one possible value for a certain argument, implement this
as a default value (I understand that it might change in the future but
it could be default without any problem), e.g.,
-
The
area
andareatype
arguments are not checked anywhere, so when user puts a wrong value, they get an uninformative error:
Error in `process_resp()`:
! Invalid input, please check documentation for valid arguments.
Run `rlang::last_trace()` to see where the error occurred.
Are there performance improvements that could be made?
No issues here. The performace depends here on the speed of internet connection of the user.
Is the documentation clear and sufficient?
Installation
- I got error when trying to install the package locally, from the cloned GitHub repo:
gdal-config not found
- I can't find any mention that any software likegdal
is reqiured bycancerprof
- trying to install from the net, using
pak
, as the instructions say, I get the error:
pak::pak("getwilds/cancerprof")
Error:
! error in pak subprocess
Caused by error:
! Could not solve package dependencies:
* getwilds/cancerprof: ! pkgdepends resolution error for getwilds/cancerprof.
Caused by error:
! Bad GitHub credentials, make sure that your GitHub token is valid.
Caused by error in `stop(http_error(resp))`:
! Unauthorized (HTTP 401).
Type .Last.error to see the more details.
(I got this resolved afterwards)
Vignettes and function documentation
-
The vignettes are basically a list of examples for each of the functions. These examples should be (and in most cases are) in the function documentation. Instead, a vignette should guide a user through a specific use case scenario. Could the authors create a set of scientific questions that the package helps to answer? Especially batch retrieval of data is important.
-
I could not find explanation of "FIPS"
-
In "Demo mobility" it says: "The function defaults to
"all races"
,"both sexes"
,"ages 1+"
" - what does it mean? That the data from the source is available only for these categories?
Usually, when I see "defaults", I would assume that these are the values assumed if there is no specific value for an argument. Here, it seems like there can't be any other value. -
There is a mistake in
risk_women_health
documentation - wrong names of the columns of returned data frame. -
The authors could explain the different categories of arguments more, e.g., in
risk_women_health
, thewomen_health
argument has three possible values ("pap smear in past 3 years, no hysterectomy, ages 21-65", "mammogram in past 2 years, ages 50-74", "mammogram in past 2 years, ages 40+") and the columns of the returned data frame are not informative enough to understand what type of data one actually gets -
Is there a typo in
risk_alcohol
documentation, underalcohol
argument? (and does this argument value need to be so long?)
Does the documentation use the principle of multiple points of entry i.e. takes into account the fact that any piece of documentation may be the first encounter the user has with the package and/or the tool/data it wraps?
- The webpage is well built, so that one can get to the home page easily
- However, there is no common help-page for the package (i.e.,
help(package = "cancerprof")
givesURL '/help/library/cancerprof/html/00Index.html' not found
)
Were functions and arguments named to work together to form a common, logical programming API that is easy to read, and autocomplete?
Yes - good choice of naming. Although the demo_
functions sounded at first
like "demonstration" to me, but it's logical to abbreviate "demography" as "demo". :)
@jromanowska Thank you so much for your hard work at reviewing cancerprof! I will get to work on implementing improvements based on your feedback.
:calendar: @ginberg you have 2 days left before the due date for your review (2024-06-12).
@ropensci-review-bot submit review https://github.com/ropensci/software-review/issues/637#issuecomment-2129520979 time 16
Logged review for jromanowska (hours: 16)