nomisdata: programmatic access to UK official labour market statistics and Census data
Submitting Author Name: Cheryl Isabella Submitting Author Github Handle: @cherylisabella Repository: https://github.com/cherylisabella/nomisdata Version submitted: 0.1.1 Submission type: Standard Editor: TBD Reviewers: TBD
Archive: TBD Version accepted: TBD Language: en
- Paste the full DESCRIPTION file inside a code block below:
Package: nomisdata
Type: Package
Title: Access 'Nomis' UK Labour Market Data and Statistics
Version: 0.1.1
Authors@R: person(given = c("Cheryl", "Isabella"), family = "Lim", role = c("aut", "cre"), email = "[email protected]", comment = c(ORCID = "0009-0004-5766-1392"))
Description: Interface to the 'Nomis' database (<https://www.nomisweb.co.uk>), a comprehensive resource of United Kingdom labour market statistics provided by the Office for National Statistics (ONS). Facilitates programmatic access to census data, labour force surveys, benefit statistics, and socioeconomic indicators through a modern HTTP client with intelligent caching, automatic query pagination, and tidy data principles. Includes spatial data integration, interactive helpers, and visualization utilities. Independent implementation unaffiliated with ONS or Durham University.
License: MIT + file LICENSE
URL: https://github.com/cherylisabella/nomisdata
BugReports: https://github.com/cherylisabella/nomisdata/issues
Imports: cli (>= 3.6.0), dplyr (>= 1.1.0), httr2 (>= 1.0.0), jsonlite (>= 1.8.0), rlang (>= 1.1.0), tibble (>= 3.2.0), utils, digest, methods
Suggests: cachem (>= 1.0.0), ggplot2 (>= 3.4.0), janitor (>= 2.2.0), knitr (>= 1.42), memoise (>= 2.0.0), rappdirs (>= 0.3.0), readr (>= 2.1.0), rmarkdown (>= 2.20), rsdmx (>= 0.6.0), scales (>= 1.2.0), sf (>= 1.0.0), testthat (>= 3.1.0), vcr (>= 1.2.0), withr (>= 2.5.0)
VignetteBuilder: knitr
Config/testthat/edition: 3
Config/testthat/parallel: true
Config/Needs/website: tidyverse/tidytemplate
Encoding: UTF-8
Language: en-GB
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.3
Depends: R (>= 4.1.0)
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
- [x] database software bindings
- [ ] geospatial data
- [ ] translation
-
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
nomisdataprovides structured, programmatic access to the UK Office for National Statistics (ONS) NomisWeb API, delivering census, labour-force, benefits and socioeconomic data in tidy/spatial-ready formats. This aligns directly with rOpenSci’s “data retrieval” and “database software bindings” categories. -
Who is the target audience and what are scientific applications of this package? Researchers in labour economics, demography, regional science, public policy, spatial/social epidemiology, and social sciences more broadly. Use cases include analysis of unemployment, benefit uptake, demographic trends, regional comparisons, spatial inequality, longitudinal labour-market studies, and reproducible pipelines combining Nomis data with spatial or socioeconomic analyses.
-
Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category? The previously available R wrapper for the Nomis API, nomisr, is archived and no longer maintained. nomisdata re-implements access with a modern HTTP client (httr2), intelligent caching (memoise + disk), automatic pagination, spatial data integration (
sf), cleaner tidy data output, improved error handling, and active maintenance. As such, nomisdata fills a currently unmaintained gap and represents a substantial improvement, satisfying the “best-in-category” criteria. -
(If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research?
nomisdataretrieves aggregated, publicly available statistics; no personal or individually identifying data is accessed or stored. -
If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tagthe editor you contacted. -
Explain reasons for any
pkgcheckitems which your package is unable to pass.
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
- [ ] 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.
@ropensci-review-bot check package
I'm sorry @cherylisabella, I'm afraid I can't do that. That's something only editors, author1, author-others and reviewers-list are allowed to do.
Thanks for the submission @cherylisabella. Can you please edit the initial commit, and revert the initial section from the template to keep all of the HTML comments, like this:
Submitting Author Name: Name
Submitting Author Github Handle: <!--author1-->@github_handle<!--end-author1-->
Other Package Authors Github handles: (comma separated, delete if none) <!--author-others-->@github_handle1, @github_handle2<!--end-author-others-->
Repository: <!--repourl-->https://repourl<!--end-repourl-->
Version submitted:
Submission type: <!--submission-type-->Standard<!--end-submission-type-->
Editor: <!--editor--> TBD <!--end-editor-->
Reviewers: <!--reviewers-list--> TBD <!--end-reviewers-list-->
<!--due-dates-list--><!--end-due-dates-list-->
Archive: TBD
Version accepted: TBD
Language: <!--language-->en<!--end-language-->
The <!--author1--> at the start, for example, is what's used by the bot to identify you, and grant you permission to call check package. More generally, those comments define a set of parameters used throughout our automated review process. Once you've reverted those, you should be able to call check package again and get things going. Thanks!
Thank you @mpadge for the tip! I've edited this submission accordingly.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for nomisdata (v0.1.1)
git hash: d86a0464
- :heavy_check_mark: Package is already on CRAN.
- :heavy_multiplication_x: does not have 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_multiplication_x: Package coverage is 65.4% (should be at least 75%).
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
- :eyes: Some goodpractice linters failed.
- :eyes: Function names are duplicated in other packages
- :eyes: Examples should not use
\dontrun{}unless really necessary.
Important: All failing checks above must be addressed prior to proceeding
(Checks marked with :eyes: may be optionally addressed.)
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 | 173 |
| internal | nomisdata | 58 |
| internal | stats | 11 |
| internal | graphics | 3 |
| imports | utils | 18 |
| imports | dplyr | 13 |
| imports | httr2 | 9 |
| imports | rlang | 5 |
| imports | methods | 4 |
| imports | jsonlite | 2 |
| imports | tibble | 2 |
| imports | digest | 2 |
| imports | cli | 1 |
| suggests | readr | 2 |
| suggests | rsdmx | 2 |
| suggests | sf | 2 |
| suggests | janitor | 1 |
| suggests | cachem | NA |
| suggests | ggplot2 | NA |
| suggests | knitr | NA |
| suggests | memoise | NA |
| suggests | rappdirs | NA |
| suggests | rmarkdown | NA |
| suggests | scales | NA |
| suggests | testthat | NA |
| suggests | vcr | NA |
| suggests | withr | 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
paste0 (20), list (19), format (13), c (10), if (8), is.null (7), names (7), getOption (6), character (5), file.path (5), url (5), for (4), nrow (4), Sys.time (4), lapply (3), paste (3), return (3), saveRDS (3), search (3), Sys.getenv (3), as.numeric (2), body (2), data.frame (2), date (2), setdiff (2), tryCatch (2), as.data.frame (1), as.integer (1), by (1), class (1), conditionMessage (1), difftime (1), do.call (1), drop (1), grep (1), grepl (1), gsub (1), length (1), mapply (1), rbind (1), readline (1), readLines (1), readRDS (1), seq (1), seq_along (1), seq_len (1), sprintf (1), switch (1), tempfile (1), units (1), unlist (1), vector (1)
nomisdata
build_request (13), execute_request (9), get_codes (4), parse_json_response (3), build_params (2), clear_cache (2), dataset_overview (2), describe_dataset (2), fetch_codelist (2), fetch_paginated (2), get_cache_key (2), add_geography_names (1), add_to_renviron (1), aggregate_geography (1), aggregate_time (1), browse_dataset (1), cache_data (1), check_installed (1), enable_cache (1), explore_dataset (1), fetch_nomis (1), fetch_spatial (1), format_number (1), get_cached_data (1), handle_error_body (1), parse_csv_response (1)
utils
data (11), timestamp (3), page (2), read.csv (2)
dplyr
across (3), all_of (3), group_by (3), (2), left_join (1), summarise (1)
stats
df (9), time (2)
httr2
resp_body_string (3), resp_status (2), req_error (1), req_perform (1), request (1), resp_url (1)
rlang
abort (2), list2 (2), warn (1)
methods
slot (4)
graphics
text (2), lines (1)
digest
digest (2)
jsonlite
fromJSON (2)
readr
read_csv (2)
rsdmx
readSDMX (2)
sf
st_read (2)
tibble
as_tibble (2)
cli
cli_progress_bar (1)
janitor
make_clean_names (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 20 files) and
- 1 authors
- 5 vignettes
- 1 internal data file
- 9 imported packages
- 28 exported functions (median 16 lines of code)
- 49 non-exported functions in R (median 18 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 | 19 | 78.3 | |
| files_inst | 1 | 91.0 | |
| files_vignettes | 5 | 95.4 | |
| files_tests | 32 | 97.4 | |
| loc_R | 681 | 55.0 | |
| loc_inst | 446 | 64.4 | |
| loc_vignettes | 397 | 69.4 | |
| loc_tests | 929 | 80.9 | |
| num_vignettes | 5 | 96.0 | TRUE |
| data_size_total | 458 | 56.7 | |
| data_size_median | 458 | 58.8 | |
| n_fns_r | 77 | 67.9 | |
| n_fns_r_exported | 28 | 75.9 | |
| n_fns_r_not_exported | 49 | 65.2 | |
| n_fns_per_file_r | 2 | 41.0 | |
| num_params_per_fn | 2 | 9.4 | |
| loc_per_fn_r | 17 | 52.6 | |
| loc_per_fn_r_exp | 16 | 38.8 | |
| loc_per_fn_r_not_exp | 18 | 58.6 | |
| rel_whitespace_R | 27 | 66.2 | |
| rel_whitespace_inst | 16 | 62.6 | |
| rel_whitespace_vignettes | 28 | 64.3 | |
| rel_whitespace_tests | 28 | 85.4 | |
| doclines_per_fn_exp | 15 | 8.5 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 37 | 58.3 |
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 |
|---|---|---|---|---|---|
| 20005856427 | .github/workflows/R-CMD-check.yaml | failure | 03632b | 10 | 2025-12-07 |
| 20006580118 | R-CMD-check | success | d86a04 | 25 | 2025-12-07 |
3b. goodpractice results
R CMD check with rcmdcheck
R CMD check generated the following note:
- checking DESCRIPTION meta-information ... NOTE License stub is invalid DCF.
Test coverage with covr
Package coverage: 65.36
The following files are not completely covered by tests:
| file | coverage |
|---|---|
| R/auth.R | 44% |
| R/cache_utils.R | 38.46% |
| R/cache-enhanced.R | 65.38% |
| R/download.R | 65.71% |
| R/interactive.R | 44.44% |
| R/metadata.R | 58.59% |
| R/spatial.R | 68.09% |
| R/utils.R | 42.86% |
| R/zzz.R | 60% |
Cyclocomplexity with cyclocomp
The following function have cyclocomplexity >= 15:
| function | cyclocomplexity |
|---|---|
| get_codes | 43 |
Static code analyses with lintr
lintr found no issues with this package!
4. Other Checks
Details of other checks (click to open)
:heavy_multiplication_x: The following 5 function names are duplicated in other packages:
-
-
aggregate_timefrom gdalcubes
-
-
-
clear_cachefrom catalog, prettymapr, f1dataR, nflreadr, pkgdown.offline, epidatr, rcrisp, openesm, lintr
-
-
-
explore_datasetfrom mltools
-
-
-
get_codesfrom pccc
-
-
-
set_api_keyfrom googlenlp, newsanchor, rwunderground, twfy, clockify, octopusR, polished, Rnumerai, openFDA, ip2whois, Rapi, rscopus, AIscreenR, screenshotbase, rspacer
-
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.0.93 |
| pkgcheck | 0.1.2.241 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for nomisdata (v0.1.1)
git hash: 84265287
- :heavy_check_mark: Package is already on CRAN.
- :heavy_multiplication_x: does not have 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_multiplication_x: Package fails continuous integration checks.
- :heavy_multiplication_x: Package coverage is 74.4% (should be at least 75%).
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
- :eyes: Some goodpractice linters failed.
- :eyes: Examples should not use
\dontrun{}unless really necessary.
Important: All failing checks above must be addressed prior to proceeding
(Checks marked with :eyes: may be optionally addressed.)
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 | 173 |
| internal | nomisdata | 58 |
| internal | stats | 11 |
| internal | graphics | 3 |
| imports | utils | 18 |
| imports | dplyr | 13 |
| imports | httr2 | 9 |
| imports | rlang | 5 |
| imports | methods | 4 |
| imports | jsonlite | 2 |
| imports | tibble | 2 |
| imports | digest | 2 |
| imports | cli | 1 |
| suggests | readr | 2 |
| suggests | rsdmx | 2 |
| suggests | sf | 2 |
| suggests | janitor | 1 |
| suggests | cachem | NA |
| suggests | ggplot2 | NA |
| suggests | knitr | NA |
| suggests | memoise | NA |
| suggests | rappdirs | NA |
| suggests | rmarkdown | NA |
| suggests | scales | NA |
| suggests | testthat | NA |
| suggests | withr | 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
paste0 (20), list (19), format (13), c (10), if (8), is.null (7), names (7), getOption (6), character (5), file.path (5), url (5), for (4), nrow (4), Sys.time (4), lapply (3), paste (3), return (3), saveRDS (3), search (3), Sys.getenv (3), as.numeric (2), body (2), data.frame (2), date (2), setdiff (2), tryCatch (2), as.data.frame (1), as.integer (1), by (1), class (1), conditionMessage (1), difftime (1), do.call (1), drop (1), grep (1), grepl (1), gsub (1), length (1), mapply (1), rbind (1), readline (1), readLines (1), readRDS (1), seq (1), seq_along (1), seq_len (1), sprintf (1), switch (1), tempfile (1), units (1), unlist (1), vector (1)
nomisdata
build_request (13), execute_request (9), get_codes (4), parse_json_response (3), build_params (2), clear_cache (2), dataset_overview (2), describe_dataset (2), fetch_codelist (2), fetch_paginated (2), get_cache_key (2), add_geography_names (1), add_to_renviron (1), aggregate_geography (1), aggregate_time (1), browse_dataset (1), cache_data (1), check_installed (1), enable_cache (1), explore_dataset (1), fetch_nomis (1), fetch_spatial (1), format_number (1), get_cached_data (1), handle_error_body (1), parse_csv_response (1)
utils
data (11), timestamp (3), page (2), read.csv (2)
dplyr
across (3), all_of (3), group_by (3), (2), left_join (1), summarise (1)
stats
df (9), time (2)
httr2
resp_body_string (3), resp_status (2), req_error (1), req_perform (1), request (1), resp_url (1)
rlang
abort (2), list2 (2), warn (1)
methods
slot (4)
graphics
text (2), lines (1)
digest
digest (2)
jsonlite
fromJSON (2)
readr
read_csv (2)
rsdmx
readSDMX (2)
sf
st_read (2)
tibble
as_tibble (2)
cli
cli_progress_bar (1)
janitor
make_clean_names (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 20 files) and
- 1 authors
- 5 vignettes
- 1 internal data file
- 9 imported packages
- 28 exported functions (median 16 lines of code)
- 49 non-exported functions in R (median 18 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 | 19 | 78.8 | |
| files_inst | 1 | 90.8 | |
| files_vignettes | 5 | 95.6 | |
| files_tests | 34 | 97.8 | |
| loc_R | 680 | 56.4 | |
| loc_inst | 446 | 64.3 | |
| loc_vignettes | 397 | 69.7 | |
| loc_tests | 3003 | 94.8 | |
| num_vignettes | 5 | 96.1 | TRUE |
| data_size_total | 458 | 55.8 | |
| data_size_median | 458 | 57.9 | |
| n_fns_r | 77 | 68.9 | |
| n_fns_r_exported | 28 | 76.4 | |
| n_fns_r_not_exported | 49 | 66.3 | |
| n_fns_per_file_r | 2 | 42.5 | |
| num_params_per_fn | 2 | 11.6 | |
| loc_per_fn_r | 17 | 53.9 | |
| loc_per_fn_r_exp | 16 | 40.4 | |
| loc_per_fn_r_not_exp | 18 | 59.7 | |
| rel_whitespace_R | 27 | 67.2 | |
| rel_whitespace_inst | 16 | 62.3 | |
| rel_whitespace_vignettes | 28 | 64.7 | |
| rel_whitespace_tests | 32 | 97.1 | TRUE |
| doclines_per_fn_exp | 15 | 10.7 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 36 | 59.0 |
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)
3b. goodpractice results
Test coverage with covr
Package coverage: 74.38
Cyclocomplexity with cyclocomp
The following function have cyclocomplexity >= 15:
| function | cyclocomplexity |
|---|---|
| get_codes | 43 |
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.1 |
| pkgcheck | 0.1.2.241 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for nomisdata (v0.1.1)
git hash: 46117402
- :heavy_check_mark: Package is already on CRAN.
- :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_multiplication_x: Package coverage is 74.4% (should be at least 75%).
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
- :eyes: Some goodpractice linters failed.
- :eyes: Examples should not use
\dontrun{}unless really necessary.
Important: All failing checks above must be addressed prior to proceeding
(Checks marked with :eyes: may be optionally addressed.)
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 | 173 |
| internal | nomisdata | 58 |
| internal | stats | 11 |
| internal | graphics | 3 |
| imports | utils | 18 |
| imports | dplyr | 13 |
| imports | httr2 | 9 |
| imports | rlang | 5 |
| imports | methods | 4 |
| imports | jsonlite | 2 |
| imports | tibble | 2 |
| imports | digest | 2 |
| imports | cli | 1 |
| suggests | readr | 2 |
| suggests | rsdmx | 2 |
| suggests | sf | 2 |
| suggests | janitor | 1 |
| suggests | cachem | NA |
| suggests | ggplot2 | NA |
| suggests | knitr | NA |
| suggests | memoise | NA |
| suggests | rappdirs | NA |
| suggests | rmarkdown | NA |
| suggests | scales | NA |
| suggests | testthat | NA |
| suggests | withr | 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
paste0 (20), list (19), format (13), c (10), if (8), is.null (7), names (7), getOption (6), character (5), file.path (5), url (5), for (4), nrow (4), Sys.time (4), lapply (3), paste (3), return (3), saveRDS (3), search (3), Sys.getenv (3), as.numeric (2), body (2), data.frame (2), date (2), setdiff (2), tryCatch (2), as.data.frame (1), as.integer (1), by (1), class (1), conditionMessage (1), difftime (1), do.call (1), drop (1), grep (1), grepl (1), gsub (1), length (1), mapply (1), rbind (1), readline (1), readLines (1), readRDS (1), seq (1), seq_along (1), seq_len (1), sprintf (1), switch (1), tempfile (1), units (1), unlist (1), vector (1)
nomisdata
build_request (13), execute_request (9), get_codes (4), parse_json_response (3), build_params (2), clear_cache (2), dataset_overview (2), describe_dataset (2), fetch_codelist (2), fetch_paginated (2), get_cache_key (2), add_geography_names (1), add_to_renviron (1), aggregate_geography (1), aggregate_time (1), browse_dataset (1), cache_data (1), check_installed (1), enable_cache (1), explore_dataset (1), fetch_nomis (1), fetch_spatial (1), format_number (1), get_cached_data (1), handle_error_body (1), parse_csv_response (1)
utils
data (11), timestamp (3), page (2), read.csv (2)
dplyr
across (3), all_of (3), group_by (3), (2), left_join (1), summarise (1)
stats
df (9), time (2)
httr2
resp_body_string (3), resp_status (2), req_error (1), req_perform (1), request (1), resp_url (1)
rlang
abort (2), list2 (2), warn (1)
methods
slot (4)
graphics
text (2), lines (1)
digest
digest (2)
jsonlite
fromJSON (2)
readr
read_csv (2)
rsdmx
readSDMX (2)
sf
st_read (2)
tibble
as_tibble (2)
cli
cli_progress_bar (1)
janitor
make_clean_names (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 20 files) and
- 1 authors
- 5 vignettes
- 1 internal data file
- 9 imported packages
- 28 exported functions (median 16 lines of code)
- 49 non-exported functions in R (median 18 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 | 19 | 78.8 | |
| files_inst | 1 | 90.8 | |
| files_vignettes | 5 | 95.6 | |
| files_tests | 34 | 97.8 | |
| loc_R | 680 | 56.4 | |
| loc_inst | 446 | 64.3 | |
| loc_vignettes | 397 | 69.7 | |
| loc_tests | 3533 | 95.9 | TRUE |
| num_vignettes | 5 | 96.1 | TRUE |
| data_size_total | 458 | 55.8 | |
| data_size_median | 458 | 57.9 | |
| n_fns_r | 77 | 68.9 | |
| n_fns_r_exported | 28 | 76.4 | |
| n_fns_r_not_exported | 49 | 66.3 | |
| n_fns_per_file_r | 2 | 42.5 | |
| num_params_per_fn | 2 | 11.6 | |
| loc_per_fn_r | 17 | 53.9 | |
| loc_per_fn_r_exp | 16 | 40.4 | |
| loc_per_fn_r_not_exp | 18 | 59.7 | |
| rel_whitespace_R | 27 | 67.2 | |
| rel_whitespace_inst | 16 | 62.3 | |
| rel_whitespace_vignettes | 28 | 64.7 | |
| rel_whitespace_tests | 31 | 97.9 | TRUE |
| doclines_per_fn_exp | 15 | 10.7 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 36 | 59.0 |
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 |
|---|---|---|---|---|---|
| 20080569211 | R-CMD-check | success | 461174 | 35 | 2025-12-09 |
3b. goodpractice results
Test coverage with covr
Package coverage: 74.38
Cyclocomplexity with cyclocomp
The following function have cyclocomplexity >= 15:
| function | cyclocomplexity |
|---|---|
| get_codes | 43 |
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.1 |
| pkgcheck | 0.1.2.241 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for nomisdata (v0.1.1)
git hash: aa6a6df5
- :heavy_multiplication_x: Package name is not available (on CRAN).
- :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_multiplication_x: Package coverage is 74.6% (should be at least 75%).
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
- :eyes: Some goodpractice linters failed.
- :eyes: Examples should not use
\dontrun{}unless really necessary.
Important: All failing checks above must be addressed prior to proceeding
(Checks marked with :eyes: may be optionally addressed.)
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 | 173 |
| internal | nomisdata | 58 |
| internal | stats | 11 |
| internal | graphics | 3 |
| imports | utils | 18 |
| imports | dplyr | 13 |
| imports | httr2 | 9 |
| imports | rlang | 5 |
| imports | methods | 4 |
| imports | jsonlite | 2 |
| imports | tibble | 2 |
| imports | digest | 2 |
| imports | cli | 1 |
| suggests | readr | 2 |
| suggests | rsdmx | 2 |
| suggests | sf | 2 |
| suggests | janitor | 1 |
| suggests | cachem | NA |
| suggests | ggplot2 | NA |
| suggests | knitr | NA |
| suggests | memoise | NA |
| suggests | rappdirs | NA |
| suggests | rmarkdown | NA |
| suggests | scales | NA |
| suggests | testthat | NA |
| suggests | withr | 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
paste0 (20), list (19), format (13), c (10), if (8), is.null (7), names (7), getOption (6), character (5), file.path (5), url (5), for (4), nrow (4), Sys.time (4), lapply (3), paste (3), return (3), saveRDS (3), search (3), Sys.getenv (3), as.numeric (2), body (2), data.frame (2), date (2), setdiff (2), tryCatch (2), as.data.frame (1), as.integer (1), by (1), class (1), conditionMessage (1), difftime (1), do.call (1), drop (1), grep (1), grepl (1), gsub (1), length (1), mapply (1), rbind (1), readline (1), readLines (1), readRDS (1), seq (1), seq_along (1), seq_len (1), sprintf (1), switch (1), tempfile (1), units (1), unlist (1), vector (1)
nomisdata
build_request (13), execute_request (9), get_codes (4), parse_json_response (3), build_params (2), clear_cache (2), dataset_overview (2), describe_dataset (2), fetch_codelist (2), fetch_paginated (2), get_cache_key (2), add_geography_names (1), add_to_renviron (1), aggregate_geography (1), aggregate_time (1), browse_dataset (1), cache_data (1), check_installed (1), enable_cache (1), explore_dataset (1), fetch_nomis (1), fetch_spatial (1), format_number (1), get_cached_data (1), handle_error_body (1), parse_csv_response (1)
utils
data (11), timestamp (3), page (2), read.csv (2)
dplyr
across (3), all_of (3), group_by (3), (2), left_join (1), summarise (1)
stats
df (9), time (2)
httr2
resp_body_string (3), resp_status (2), req_error (1), req_perform (1), request (1), resp_url (1)
rlang
abort (2), list2 (2), warn (1)
methods
slot (4)
graphics
text (2), lines (1)
digest
digest (2)
jsonlite
fromJSON (2)
readr
read_csv (2)
rsdmx
readSDMX (2)
sf
st_read (2)
tibble
as_tibble (2)
cli
cli_progress_bar (1)
janitor
make_clean_names (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 20 files) and
- 1 authors
- 5 vignettes
- 1 internal data file
- 9 imported packages
- 28 exported functions (median 16 lines of code)
- 49 non-exported functions in R (median 18 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 | 19 | 78.8 | |
| files_inst | 1 | 90.8 | |
| files_vignettes | 5 | 95.6 | |
| files_tests | 34 | 97.8 | |
| loc_R | 680 | 56.4 | |
| loc_inst | 446 | 64.3 | |
| loc_vignettes | 397 | 69.7 | |
| loc_tests | 4113 | 96.5 | TRUE |
| num_vignettes | 5 | 96.1 | TRUE |
| data_size_total | 458 | 55.8 | |
| data_size_median | 458 | 57.9 | |
| n_fns_r | 77 | 68.9 | |
| n_fns_r_exported | 28 | 76.4 | |
| n_fns_r_not_exported | 49 | 66.3 | |
| n_fns_per_file_r | 2 | 42.5 | |
| num_params_per_fn | 2 | 11.6 | |
| loc_per_fn_r | 17 | 53.9 | |
| loc_per_fn_r_exp | 16 | 40.4 | |
| loc_per_fn_r_not_exp | 18 | 59.7 | |
| rel_whitespace_R | 27 | 67.2 | |
| rel_whitespace_inst | 16 | 62.3 | |
| rel_whitespace_vignettes | 28 | 64.7 | |
| rel_whitespace_tests | 30 | 98.3 | TRUE |
| doclines_per_fn_exp | 15 | 10.7 | |
| doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
| fn_call_network_size | 36 | 59.0 |
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 |
|---|---|---|---|---|---|
| 20081739938 | R-CMD-check | success | aa6a6d | 36 | 2025-12-09 |
3b. goodpractice results
Test coverage with covr
Package coverage: 74.59
Cyclocomplexity with cyclocomp
The following function have cyclocomplexity >= 15:
| function | cyclocomplexity |
|---|---|
| get_codes | 43 |
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
| package | version |
|---|---|
| pkgstats | 0.2.1 |
| pkgcheck | 0.1.2.241 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
@cherylisabella I want to thank you for both of your submissions (https://github.com/ropensci/software-review/issues/734 and https://github.com/ropensci/software-review/issues/733) to rOpenSci. After some discussions with the editorial board and rOpenSci staff, we have decided to close both of these submissions for the following reasons.
First, the leakr package does not seem to be fully developed yet, and nomisdata is seeing several recent and substantial changes to its tests. This suggests that neither package is quite ready for review.
Second, rOpenSci does require that packages be under active version control which includes a more complete version control history.
We are sorry that we are unable to move forward with review of these packages at this time, but when the packages are in a more complete state, with full documentation and tests, we would be happy to reconsider. Please also note, that we generally ask that authors have only one package under review at a time.
Again, apologies that we are not able to consider these at this time. If you have any questions, please do not hesitate to reach out.
@jhollist (acting rOpenSci EiC)