Skip to content

Statistical software submission: reviser #709

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

Open
13 of 21 tasks
marcburri opened this issue May 28, 2025 · 3 comments
Open
13 of 21 tasks

Statistical software submission: reviser #709

marcburri opened this issue May 28, 2025 · 3 comments
Labels

Comments

@marcburri
Copy link

marcburri commented May 28, 2025

Submitting Author Name: Marc Burri
Submitting Author Github Handle: @marcburri
Other Package Authors Github handles: (comma separated, delete if none) @p-wegmueller
Repository: https://github.com/p-wegmueller/reviser
Version submitted:
Submission type: Stats
Badge grade: bronze
Editor: TBD
Reviewers: TBD

Archive: TBD
Version accepted: TBD
Language: en

  • Paste the full DESCRIPTION file inside a code block below:
Package: reviser
Type: Package
Title: Tools for Studying Revision Properties in Real-Time Time Series Vintages
Version: 0.1.0.9000
Authors@R: c(
    person("Marc", "Burri", ,"marc.burri91@gmail.com", role = c("aut", "cre", "cph"),
           comment = c(ORCID = "0000-0001-8974-9090")),
    person(given = "Philipp", family = "Wegmueller", 
        email = "philipp.wemueller@seco.admin.ch", role = c("aut", "cph"))
  )
Description: Provides tools to analyze revision properties in real-time time series data.
Maintainers: c(
    person("Marc", "Burri", ,"marc.burri91@gmail.com",
           comment = c(ORCID = "0000-0001-8974-9090")),
    person(given = "Philipp", family = "Wegmueller", 
        email = "philipp.wemueller@seco.admin.ch")
  )
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
Depends: 
    R (>= 2.10)
RoxygenNote: 7.3.2
Roxygen: list (markdown = TRUE, roclets = c ("namespace", "rd", "srr::srr_stats_roclet"))
Imports:
    magrittr,
    dplyr,
    tidyr,
    ggplot2,
    car,
    sandwich,
    systemfit,
    calculus,
    rlang,
    scales,
    tibble,
    lubridate,
    KFAS
Suggests: 
    tsbox,
    testthat (>= 3.0.0),
    knitr,
    rmarkdown,
    purrr
Config/testthat/edition: 3
VignetteBuilder: knitr
URL: https://p-wegmueller.github.io/reviser/
BugReports: https://github.com/p-wegmueller/reviser/issues

Scope

  • Please indicate which of our statistical package categories this package falls under. (Please check one or more appropriate boxes below):

    Statistical Packages

    • Bayesian and Monte Carlo Routines
    • Dimensionality Reduction, Clustering, and Unsupervised Learning
    • Machine Learning
    • Regression and Supervised Learning
    • Exploratory Data Analysis (EDA) and Summary Statistics
    • Spatial Analyses
    • Time Series Analyses
    • Probability Distributions

Pre-submission Inquiry

  • A pre-submission inquiry has been approved in issue#701

General Information

  • Who is the target audience and what are scientific applications of this package?

The target audience of the reviser package includes applied economists, statisticians, data scientists, and official statisticians—particularly those working with macroeconomic indicators such as GDP, inflation, or labor market statistics. It is especially useful for professionals dealing with real-time data, where the first release of a time series is subject to subsequent revisions.

  • Paste your responses to our General Standard G1.1 here, describing whether your software is:

    • The first implementation of a novel algorithm; or
    • The first implementation within R of an algorithm which has previously been implemented in other languages or contexts; or
    • An improvement on other implementations of similar algorithms in R.

#' The function supports multiple models, including the full Kishor-Koenig
#' framework, Howrey's model, and a classical approach. It handles data
#' preprocessing, estimation of system equations using Seemingly Unrelated
#' Regressions (SUR), and application of the Kalman filter. This is
#' the first openly available implementation of the Kishor-Koenig model (See
#' the vignette \code{vignette("nowcasting_revisions")} for more details).

  • Please include hyperlinked references to all other relevant software.
    The reviser package sets itself apart from rjd3revisions not only through its focus on advanced analysis of efficient releases and nowcasting performance, but also in its pure R implementation, which avoids external dependencies. In contrast, rjd3revisions relies heavily on Java via the JDemetra+ platform, which can make setup and integration more complex. reviser offers a lightweight, R-native solution for revision analysis, combining user-friendly tools for data wrangling, visualization, and evaluation of release efficiency.

  • (If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research?

Not applicable

Badging

Bronze or silver (TBD)

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

  • Do you intend for this package to go on CRAN?
  • Do you intend for this package to go on Bioconductor?

Code of conduct

@ropensci-review-bot
Copy link
Collaborator

Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help for help.

@ropensci-review-bot
Copy link
Collaborator

🚀

The following problem was found in your submission template:

  • 'statsgrade' variable must be one of [bronze, silver, gold]
    Editors: Please ensure these problems with the submission template are rectified. Package checks have been started regardless.

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for reviser (v0.1.0.9000)

git hash: 6e58d67a

  • ✔️ Package name is available
  • ✔️ has a 'codemeta.json' file.
  • ✔️ has a 'contributing' file.
  • ✔️ uses 'roxygen2'.
  • ✔️ 'DESCRIPTION' has a URL field.
  • ✔️ 'DESCRIPTION' has a BugReports field.
  • ✔️ Package has at least one HTML vignette
  • ✔️ All functions have examples.
  • ✔️ Package has continuous integration checks.
  • ✔️ Package coverage is 78.1%.
  • ✔️ This is a statistical package which complies with all applicable standards
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.

Package License: MIT + file LICENSE


1. rOpenSci Statistical Standards (srr package)

This package is in the following category:

  • Time Series

✔️ All applicable standards [v0.2.0] have been documented in this package (145 complied with; 53 N/A standards)

Click to see the report of author-reported standards compliance of the package with links to associated lines of code, which can be re-generated locally by running the srr_report() function from within a local clone of the repository.


2. 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 348
internal stats 111
internal reviser 52
internal utils 29
internal graphics 2
imports magrittr 174
imports dplyr 35
imports ggplot2 25
imports calculus 6
imports sandwich 4
imports tibble 4
imports car 2
imports scales 2
imports KFAS 2
imports tidyr 1
imports systemfit 1
imports rlang NA
imports lubridate NA
suggests tsbox NA
suggests testthat NA
suggests knitr NA
suggests rmarkdown NA
suggests purrr 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

c (50), list (32), length (17), return (17), paste0 (16), for (14), array (10), diag (10), sqrt (10), as.numeric (9), summary (9), unique (8), by (7), names (7), nrow (7), vapply (7), abs (6), data.frame (6), as.data.frame (5), colnames (5), lapply (5), sign (5), tryCatch (5), col (4), cbind (3), diff (3), logical (3), mean (3), regmatches (3), round (3), setdiff (3), unlist (3), which (3), date (2), deparse (2), factor (2), gsub (2), is.null (2), max (2), merge (2), min (2), rep (2), seq_along (2), sort (2), sum (2), use (2), all (1), as.character (1), as.Date (1), beta (1), cat (1), class (1), difftime (1), dim (1), format (1), formatC (1), if (1), ifelse (1), is.atomic (1), ncol (1), paste (1), rbind (1), row (1), seq (1), seq.Date (1), t (1), table (1), trace (1), units (1), warning (1)

magrittr

%>% (174)

stats

df (57), coef (8), lm (7), coefficients (6), formula (6), frequency (6), pt (4), cor (3), as.formula (2), quantile (2), sd (2), var (2), Box.test (1), friedman.test (1), lag (1), median (1), setNames (1), sigma (1)

reviser

vintages_check (14), kk_matrices (4), check_implicit_missing (3), colors_reviser (3), friedman_test (2), kk_arrange_data (2), kk_equations (2), kk_ols_estim (2), kk_to_ss (2), check_simple_columns (1), compute_revision_stats (1), get_days_to_release (1), get_first_efficient_release (1), get_first_release (1), get_fixed_release (1), get_latest_release (1), get_nth_release (1), get_releases_by_date (1), get_revision_analysis (1), get_revisions (1), kk_nowcast (1), make_explicit_missing (1), plot_vintages (1), print_metrics (1), scale_color_reviser (1), scale_fill_reviser (1), vintages_wide (1)

dplyr

mutate (10), lag (4), left_join (4), n (4), if_else (3), rename (2), select (2), all_of (1), any_of (1), arrange (1), bind_rows (1), desc (1), everything (1)

utils

data (29)

ggplot2

element_text (6), margin (5), aes (4), geom_line (3), element_blank (2), element_line (2), ggplot (1), ggtitle (1), rel (1)

calculus

%mx% (3), %diff% (1), %prod% (1), %sum% (1)

sandwich

vcovHAC (3), NeweyWest (1)

tibble

tibble (4)

car

linearHypothesis (2)

graphics

title (2)

KFAS

KFS (1), SSModel (1)

scales

manual_pal (2)

systemfit

nlsystemfit (1)

tidyr

drop_na (1)

NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately.


3. 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 7 files) and
  • 2 authors
  • 6 vignettes
  • 1 internal data file
  • 13 imported packages
  • 19 exported functions (median 57 lines of code)
  • 45 non-exported functions in R (median 44 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 7 42.8
files_inst 1 94.5
files_vignettes 7 98.0
files_tests 6 78.9
loc_R 2430 85.7
loc_inst 65 33.7
loc_vignettes 919 89.1
loc_tests 1454 88.8
num_vignettes 6 97.6 TRUE
data_size_total 236485 87.7
data_size_median 236485 94.9
n_fns_r 64 63.0
n_fns_r_exported 19 65.8
n_fns_r_not_exported 45 63.1
n_fns_per_file_r 8 85.2
num_params_per_fn 2 26.6
loc_per_fn_r 45 87.5
loc_per_fn_r_exp 57 82.6
loc_per_fn_r_not_exp 44 87.7
rel_whitespace_R 15 81.7
rel_whitespace_inst 12 29.2
rel_whitespace_vignettes 42 94.1
rel_whitespace_tests 10 76.0
doclines_per_fn_exp 49 61.7
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 96 77.6

3a. Network visualisation

Click to see the interactive network visualisation of calls between objects in package


4. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

R-CMD-check.yaml
pkgcheck

GitHub Workflow Results

id name conclusion sha run_number date
15276724645 pages build and deployment success c1dec9 109 2025-05-27
15276636982 pkgcheck success 6e58d6 37 2025-05-27
15276637001 pkgdown.yaml success 6e58d6 132 2025-05-27
15276636984 R-CMD-check.yaml success 6e58d6 135 2025-05-27
15276637015 test-coverage.yaml success 6e58d6 35 2025-05-27

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following note:

  1. checking package subdirectories ... NOTE
    Problems with news in ‘NEWS.md’:
    No news entries found.

Test coverage with covr

Package coverage: 78.14

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
kk_matrices 47
get_first_efficient_release 33
kk_ols_estim 32
kk_nowcast 31
plot_vintages 29
vintages_check 29
get_revision_analysis 25
get_revisions 25
get_nth_release 20

Static code analyses with lintr

lintr found the following 29 potential issues:

message number of times
Avoid library() and require() calls in packages 20
Lines should not be more than 80 characters. This line is 81 characters. 1
Lines should not be more than 80 characters. This line is 85 characters. 2
Lines should not be more than 80 characters. This line is 88 characters. 1
Lines should not be more than 80 characters. This line is 91 characters. 1
Lines should not be more than 80 characters. This line is 92 characters. 1
Lines should not be more than 80 characters. This line is 93 characters. 1
Lines should not be more than 80 characters. This line is 94 characters. 1
Lines should not be more than 80 characters. This line is 96 characters. 1


Package Versions

package version
pkgstats 0.2.0.58
pkgcheck 0.1.2.133
srr 0.1.4.7


Editor-in-Chief Instructions:

This package is in top shape and may be passed on to a handling editor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants