software-review icon indicating copy to clipboard operation
software-review copied to clipboard

fwildclusterboot submission

Open s3alfisc opened this issue 3 years ago • 92 comments

Submitting Author Name: Alexander Fischer Submitting Author Github Handle: @s3alfisc Other Package Authors Github handles: (comma separated, delete if none) @droodman Repository: https://github.com/s3alfisc/fwildclusterboot/tree/master Version submitted: 0.9.1 (in ropensci branch) Submission type: Stats Badge grade: silver Editor: @helske Reviewers: @meghapsimatrix, @markean

Due date for @meghapsimatrix: 2023-04-17

Due date for @markean: 2023-05-29 Archive: TBD Version accepted: TBD Language: en

  • Paste the full DESCRIPTION file inside a code block below:
Package: fwildclusterboot
Title: Fast Wild Cluster Bootstrap Inference for Linear Models
Version: 0.13.2
Authors@R: c(
    person("Alexander", "Fischer", , "[email protected]", role = c("aut", "cre")),
    person("David", "Roodman", role = "aut"),
    person("Achim", "Zeileis", role = "ctb",
           comment = "Author of included sandwich fragments"),
    person("Nathaniel", "Graham", role = "ctb",
           comment = "Contributor to included sandwich fragments"),
    person("Susanne", "Koell", role = "ctb",
           comment = "Contributor to included sandwich fragments"),
    person("Laurent", "Berge", role = "ctb",
           comment = "Author of included fixest fragments"),
    person("Sebastian", "Krantz", role = "ctb")
  )
Description: Implementation of fast algorithms for wild cluster bootstrap
    inference developed in 'Roodman et al' (2019, 'STATA' Journal,
    <doi:10.1177/1536867X19830877>) and 'MacKinnon et al' (2022), which
    makes it feasible to quickly calculate bootstrap test statistics based
    on a large number of bootstrap draws even for large samples.  Multiple
    bootstrap types as described in 'MacKinnon, Nielsen & Webb' (2022) are
    supported.  Further, 'multiway' clustering, regression weights,
    bootstrap weights, fixed effects and 'subcluster' bootstrapping are
    supported. Further, both restricted ('WCR') and unrestricted ('WCU')
    bootstrap are supported. Methods are provided for a variety of fitted
    models, including 'lm()', 'feols()' (from package 'fixest') and
    'felm()' (from package 'lfe').  Additionally implements a
    'heteroskedasticity-robust' ('HC1') wild bootstrap.  Last, the package
    provides an R binding to 'WildBootTests.jl', which provides additional
    speed gains and functionality, including the 'WRE' bootstrap for
    instrumental variable models (based on models of type 'ivreg()' from
    package 'ivreg') and hypotheses with q > 1.
License: GPL-3
URL: https://s3alfisc.github.io/fwildclusterboot/
BugReports: https://github.com/s3alfisc/fwildclusterboot/issues/
Imports:
    collapse,
    dqrng,
    dreamerr,
    Formula,
    generics,
    gtools,
    JuliaConnectoR,
    MASS,
    Matrix,
    Rcpp,
    rlang,
    summclust
Suggests:
    bench,
    broom,
    clubSandwich,
    covr,
    data.table,
    fabricatr,
    fixest,
    gt,
    ivreg,
    knitr,
    lfe,
    lmtest,
    modelsummary,
    rmarkdown,
    sandwich,
    testthat (>= 3.0.0),
    tibble
LinkingTo:
    Rcpp,
    RcppArmadillo,
    RcppEigen
VignetteBuilder:
    knitr
Config/testthat/edition: 3
Encoding: UTF-8
Language: en-US
LazyData: true
Roxygen: list(markdown = TRUE, roclets = c ("namespace", "rd",
    "srr::srr_stats_roclet"))
RoxygenNote: 7.2.1
SystemRequirements: Version Requirements to run the wild bootstrap through
    Julia - Julia (>= 1.8), WildBootTests.jl (>=0.9).  Julia is
    downloadable via the official Julia website
    (https://julialang.org/downloads/), WildBootTests.jl via Julia's
    package manager (https://docs.julialang.org/en/v1/stdlib/Pkg/) or its
    github repository (https://github.com/droodman/WildBootTests.jl)

Pre-submission Inquiry

  • [x] A pre-submission inquiry has been approved in #542

General Information

  • Who is the target audience and what are scientific applications of this package? The target audience is academic social scientists (economics, political science, sociology). fwildclusterboot should be used whenever regression errors are "clustered" into few groups, in which case inference based on asymptotic approximations might fail.

  • 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.

fwildclusterboot is the first R-implementation of the 'fast' wild cluster bootstrap algorithm outlined in Roodman et al (2019, Stata Journal) and implemented in Stata via the boottest package. Recently, @droodman has also ported the algorithm to Julia. Besides implementing the "fast & wild" algorithm in native R, fwildclusterboot also allows to call WildBootTests.jl via the JuliaConnectoR package. The "fast" algorithm is significantly faster than any other R-implementations of the wild cluster bootstrap to date (e.g. see here).

Yes.

Badging

At a minimal level, I strive for a silver badge.

  1. Compliance with a good number of standards; 2) I strive for compliance with all standards regarding a) documentation and b) testing.

Technical checks

Confirm each of the following by checking the box.

pkgcheck::pkgcheck() currently fails on my machine with the following error message: "Error in normalizePath(path.expand(path), winslash, mustWork).: path[1]="C:/.../fwildclusterboot/NA" The system cannot find the specified file. It also fails on github-actions on the ropensci branch.

Also, note that the CMD checks currently fail on github actions as the gtools package has been orphaned - I am monitoring the situation, but it looks like the package will not be removed from CRAN.

This package:

Publication options

  • [x] Do you intend for this package to go on CRAN? The package is already on CRAN. In case major changes are suggested during the review, I would consider integrating them into a successor package (e.g. 'fwildclusterboot2').
  • [ ] Do you intend for this package to go on Bioconductor?

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.

s3alfisc avatar Jun 25 '22 15:06 s3alfisc

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

ropensci-review-bot avatar Jun 25 '22 15:06 ropensci-review-bot

Error (500). The editorcheck service is currently unavailable

ropensci-review-bot avatar Jun 25 '22 15:06 ropensci-review-bot

@ropensci-review-bot check package

emilyriederer avatar Jun 25 '22 17:06 emilyriederer

Thanks, about to send the query.

ropensci-review-bot avatar Jun 25 '22 17:06 ropensci-review-bot

Error (500). The editorcheck service is currently unavailable

ropensci-review-bot avatar Jun 25 '22 17:06 ropensci-review-bot

Hi @emilyriederer, is it possible that the editor check bot fails because I have submitted the package via a side-branch? @mpadge mentioned in the pre-submission that some of the automated tools might fail in this case, but suggested to nevertheless submit via a non default branch for testing purposes.

s3alfisc avatar Jun 25 '22 17:06 s3alfisc

Looks like @mpadge beat me to this but it appears we have our answer. Marc, I assume we shall wait to proceed until this issue is closed? Thanks!

emilyriederer avatar Jun 28 '22 01:06 emilyriederer

Thanks @emilyriederer, because of this submission we now have an ability to process packages with non-default review branches. You (or indeed @s3alfisc) may call check package at any time. (But I've noted to @s3alfisc elsewhere that R CMD check currently fails on his package because our check systems don't have Julia installed.)

mpadge avatar Jun 28 '22 15:06 mpadge

Thanks @mpadge - it looks like I have some work to do :) I will trigger check page once I believe I have managed to align the package with all pkgcheck requirements!

s3alfisc avatar Jun 28 '22 16:06 s3alfisc

@ropensci-review-bot check package

s3alfisc avatar Jul 20 '22 17:07 s3alfisc

Thanks, about to send the query.

ropensci-review-bot avatar Jul 20 '22 17:07 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Jul 20 '22 17:07 ropensci-review-bot

Checks for fwildclusterboot (v0.10)

git hash: 274030f8

  • :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_multiplication_x: These functions do not have examples: [check_mboottest_args_plus, check_r_lean, cpp_get_nb_threads, eigenMapMatMult, model_matrix, nobs.boottest, teststat].
  • :heavy_multiplication_x: Function names are duplicated in other packages
  • :heavy_check_mark: Package has continuous integration checks.
  • :heavy_multiplication_x: Package coverage failed
  • :heavy_multiplication_x: R CMD check found 1 error.
  • :heavy_check_mark: R CMD check found no warnings.

Important: All failing checks above must be addressed prior to proceeding

Package License: GPL-3


1. rOpenSci Statistical Standards (srr package)

This package is in the following category:

  • Regression and Supervised Learning

:heavy_check_mark: All applicable standards [v0.1.0] have been documented in this package (70 complied with; 46 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 385
internal fwildclusterboot 104
internal stats 80
internal utils 8
internal graphics 3
internal compiler 1
imports collapse 14
imports dreamerr 10
imports generics 5
imports dqrng 5
imports Matrix 3
imports Matrix.utils 3
imports JuliaConnectoR 1
imports Formula NA
imports Rcpp NA
suggests fabricatr 6
suggests fixest NA
suggests lfe NA
suggests ivreg NA
suggests clubSandwich NA
suggests sandwich NA
suggests lmtest NA
suggests data.table NA
suggests covr NA
suggests knitr NA
suggests rmarkdown NA
suggests broom NA
suggests modelsummary NA
suggests bench NA
suggests testthat NA
suggests tibble NA
linking_to Rcpp NA
linking_to RcppArmadillo NA
linking_to RcppEigen 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

length (36), call (31), list (28), c (16), lapply (13), vapply (13), as.vector (11), names (11), t (11), drop (10), stop (10), unique (10), rep (9), ifelse (8), paste0 (8), data.frame (7), match.call (7), which (7), as.matrix (6), ncol (6), nrow (6), replace (6), sqrt (6), mode (5), seq_along (5), vector (5), as.numeric (4), for (4), is.null (4), mean (4), Reduce (4), sample (4), sum (4), switch (4), tcrossprod (4), abs (3), col (3), colnames (3), environment (3), q (3), as.integer (2), attr (2), crossprod (2), getOption (2), if (2), loadedNamespaces (2), min (2), norm (2), paste (2), Recall (2), solve (2), suppressWarnings (2), append (1), as.character (1), as.factor (1), cbind (1), class (1), do.call (1), exp (1), integer (1), is.na (1), is.numeric (1), logical (1), max (1), message (1), sample.int (1), seq (1), sort (1), Sys.getenv (1), try (1), unlist (1)

fwildclusterboot

get_ssc_julia (8), check_set_full_enumeration (7), set_seed (7), teststat (6), boot_algo_julia (5), crosstab (4), get_cluster (4), model_matrix (4), boot_algo2 (3), cpp_get_nb_threads (3), eigenMapMatMult (3), get_bootstrap_pvalue (3), get_ssc (3), demean_fe (2), gtools_permutations (2), preprocess2.felm (2), preprocess2.fixest (2), preprocess2.lm (2), transform_fe (2), boottest (1), boottest.felm (1), boottest.fixest (1), boottest.ivreg (1), boottest.lm (1), check_boottest_args_plus (1), check_mboottest_args_plus (1), check_params_in_model (1), check_r_lean (1), check_set_nthreads (1), confint.boottest (1), crosstab4 (1), get_seed (1), get_start_vals (1), getBoottest_boot_algo (1), getBoottest_nthreads (1), glance.boottest (1), invert_p_val (1), mboottest (1), mboottest.felm (1), mboottest.fixest (1), mboottest.lm (1), model_matrix.felm (1), model_matrix.lm (1), nobs.boottest (1), nobs.mboottest (1), p_val_null2 (1), p_val_null2_x (1), p_val_null2_x_sign_level (1), preprocess2.ivreg (1), to_integer (1), wildboottestHC (1)

stats

weights (24), model.matrix (12), formula (8), coef (6), na.omit (6), model.frame (5), nobs (4), aggregate (3), model.response (3), na.exclude (3), reformulate (2), na.action (1), na.pass (1), rlnorm (1), update (1)

collapse

fsum (7), GRP (4), qF (3)

dreamerr

validate_dots (10)

utils

data (7), combn (1)

fabricatr

draw_binary (2), draw_normal_icc (2), draw_ordered (1), fabricate (1)

dqrng

dqsample (4), dqset.seed (1)

generics

tidy (4), glance (1)

graphics

abline (3)

Matrix

t (2), Diagonal (1)

Matrix.utils

aggregate.Matrix (3)

compiler

cmpfun (1)

JuliaConnectoR

juliaImport (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 C++ (8% in 2 files) and R (92% in 28 files)
  • 2 authors
  • 2 vignettes
  • 1 internal data file
  • 9 imported packages
  • 33 exported functions (median 8 lines of code)
  • 121 non-exported functions in R (median 26 lines of code)
  • 13 R functions (median 17 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 28 88.2
files_src 2 79.1
files_vignettes 2 85.7
files_tests 17 95.3
loc_R 3873 93.2
loc_src 325 37.1
loc_vignettes 436 74.7
loc_tests 5291 98.3 TRUE
num_vignettes 2 89.2
data_size_total 14024 72.7
data_size_median 14024 81.0
n_fns_r 154 85.7
n_fns_r_exported 33 80.4
n_fns_r_not_exported 121 87.1
n_fns_src 13 35.0
n_fns_per_file_r 3 55.2
n_fns_per_file_src 6 61.3
num_params_per_fn 2 11.9
loc_per_fn_r 23 66.0
loc_per_fn_r_exp 8 16.3
loc_per_fn_r_not_exp 26 73.5
loc_per_fn_src 17 59.6
rel_whitespace_R 18 92.7
rel_whitespace_src 30 48.8
rel_whitespace_vignettes 43 83.2
rel_whitespace_tests 11 96.1 TRUE
doclines_per_fn_exp 29 31.0
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 132 83.4

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

GitHub Workflow Results

id name conclusion sha run_number date
2828472276 pages build and deployment success b71a32 155 2022-08-09
2827237407 pkgcheck failure 274030 24 2022-08-09
2862000970 pkgdown failure 85eba8 101 2022-08-15
2862000975 R-CMD-check failure 85eba8 458 2022-08-15
2862000968 test-coverage failure 85eba8 435 2022-08-15

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following error:

  1. checking tests ... Running ‘testthat.R’ ERROR Running the tests in ‘tests/testthat.R’ failed. Last 13 lines of output: ▆
    1. ├─fwildclusterboot::boottest(...) at test_fixest_sugar.R:44:2
    2. └─fwildclusterboot:::boottest.fixest(...)
    3. └─fwildclusterboot:::preprocess2.fixest(...)
    4. └─fwildclusterboot:::get_cluster(...)
      
    5.   ├─stats::model.frame(clustid_fml, cluster_tmp, na.action = na.pass)
      
    6.   └─stats::model.frame.default(clustid_fml, cluster_tmp, na.action = na.pass)
      
    7.     ├─base::as.data.frame(data)
      
    8.     └─base::as.data.frame.default(data)
      

── Error (test_multicollinearity.R:16:3): test multicollinearity ─────────────── Error in feols(Y ~ X1 + X2, data = data): could not find function "feols"

[ FAIL 2 | WARN 4 | SKIP 15 | PASS 59 ] Error: Test failures Execution halted

R CMD check generated the following notes:

  1. checking installed package size ... NOTE installed size is 7.0Mb sub-directories of 1Mb or more: libs 5.9Mb
  2. checking R code for possible problems ... NOTE mboottest.lm: no visible binding for global variable ‘teststat_boot’ Undefined global functions or variables: teststat_boot

R CMD check generated the following test_fail:

  1. library(testthat)

library(fwildclusterboot)

test_check("fwildclusterboot") The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
Error in i(treatment, ideology1) : could not find function "i" test_tidy.R, q = 1 skipped as 'JULIA_BINDIR' not found. test_tidy.R, q > 1 skipped as 'JULIA_BINDIR' not found. Loading required namespace: data.table test-error_warning.R with q = 1 skipped as JULIA_BINDIR not found. test-error_warning.R with q > 1 skipped as JULIA_BINDIR not found. Loading required package: Matrix Error in post1 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | 0 | 0 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | Utility_state : operations are possible only for numeric, logical or complex types Error in post1 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | 0 | 0 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | Utility_state : operations are possible only for numeric, logical or complex types Error in post1 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | 0 | 0 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | Utility_state : operations are possible only for numeric, logical or complex types test-global_vars.R skipped as JULIA_BINDR not found. test-method_equivalence.R I skipped as JULIA_BINDR not found. test-method_equivalence.R II skipped as JULIA_BINDR not found. test-r-vs-julia.R skipped as JULIA_BINDIR not found. test-seed.R skipped as JULIA_BINDR not found. test-tstat_equivalence.R I skipped as JULIA_BINDR not found. test-tstat_equivalence.R II skipped as JULIA_BINDR not found. test-stat_equivalence.R III skipped as JULIA_BINDR not found. Error in Q1_immigration + Q2_defense : non-numeric argument to binary operator Error in Q1_immigration + Q2_defense : non-numeric argument to binary operator [ FAIL 2 | WARN 4 | SKIP 15 | PASS 59 ]

══ Skipped tests ═══════════════════════════════════════════════════════════════ • empty test (15)

══ Warnings ════════════════════════════════════════════════════════════════════ ── Warning (test-uncategorized.R:44:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:

  1. fwildclusterboot::boottest(...) at test-uncategorized.R:44:2
  2. fwildclusterboot:::boottest.fixest(...)
  3. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:52:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  4. fwildclusterboot::boottest(...) at test-uncategorized.R:52:2
  5. fwildclusterboot:::boottest.fixest(...)
  6. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:60:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  7. fwildclusterboot::boottest(...) at test-uncategorized.R:60:2
  8. fwildclusterboot:::boottest.fixest(...)
  9. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:68:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  10. fwildclusterboot::boottest(...) at test-uncategorized.R:68:2
  11. fwildclusterboot:::boottest.fixest(...)
  12. fwildclusterboot:::check_set_full_enumeration(...)

══ Failed tests ════════════════════════════════════════════════════════════════ ── Error (test_fixest_sugar.R:44:3): test fixest formula sugar ───────────────── Error in as.data.frame.default(data): cannot coerce class '"try-error"' to a data.frame Backtrace: ▆

  1. ├─fwildclusterboot::boottest(...) at test_fixest_sugar.R:44:2
  2. └─fwildclusterboot:::boottest.fixest(...)
  3. └─fwildclusterboot:::preprocess2.fixest(...)
  4. └─fwildclusterboot:::get_cluster(...)
    
  5.   ├─stats::model.frame(clustid_fml, cluster_tmp, na.action = na.pass)
    
  6.   └─stats::model.frame.default(clustid_fml, cluster_tmp, na.action = na.pass)
    
  7.     ├─base::as.data.frame(data)
    
  8.     └─base::as.data.frame.default(data)
    

── Error (test_multicollinearity.R:16:3): test multicollinearity ─────────────── Error in feols(Y ~ X1 + X2, data = data): could not find function "feols"

[ FAIL 2 | WARN 4 | SKIP 15 | PASS 59 ] Error: Test failures Execution halted

R CMD check generated the following check_fails:

  1. rcmdcheck_undefined_globals
  2. rcmdcheck_tests_pass
  3. rcmdcheck_reasonable_installed_size

Test coverage with covr

ERROR: Test Coverage Failed

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
get_cluster 45
gtools_permutations 34
boot_algo_julia 20
boot_algo2 17
getBoottest_nthreads 16
check_boottest_args_plus 15

Static code analyses with lintr

lintr found the following 35 potential issues:

message number of times
Avoid library() and require() calls in packages 12
Lines should not be more than 80 characters. 23

5. Other Checks

Details of other checks (click to open)

:heavy_multiplication_x: The following 2 function names are duplicated in other packages:

    • model_matrix from bayesbr, hardhat, mcmcsae, modelr, ZIprop
    • pval from CIPerm, dostats, dostats, GUIDE, learnstats, molic, mosaic, overlapptest, RPtests, timereg

Package Versions

package version
pkgstats 0.1.1.20
pkgcheck 0.1.0.3
srr 0.0.1.176

Editor-in-Chief Instructions:

Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.

ropensci-review-bot avatar Aug 16 '22 10:08 ropensci-review-bot

Hi, I wanted to give some feedback on the state of the package:

  • Over the last weeks, I have integrated new bootstrap variants to the package as recently suggested in MacKinnon, Nielsen & Webb. The new variants seem to perform even better than "old" variants implemented in fwildclusterboot and are also relatively fast to compute.
  • I have spent quite some time on trying to make the package compliant with all pkgchecks - unfortunately, I still fail to run the entire process locally, so please apologize if it will take me one or two more attempts to fully align the package. When running pkgcheck::pkgcheck(), I usually get the following error Error in normalizePath(path.expand(path), winslash, mustWork) : path[1]="C:\Users\...\fwildclusterboot/NA": The system cannot find the file specified. I also cannot get the pkgcheck github action to run with fwildclusterboot. For another package of mine, the pkgcheck action runs flawlessly .
  • As suggested by @mpadge , I have added a clause that will prohibit that unit tests will run if Julia is not installed. Unfortunately, this has affected the CI statistics of the package by disabling any Julia based testing on CI. I am currently investigating this - the computed coverage of 56% does not look very good & is quite a bit higher when adding all tests against Julia (it should be around 85%).

s3alfisc avatar Aug 17 '22 20:08 s3alfisc

@ropensci-review-bot check package

s3alfisc avatar Aug 24 '22 19:08 s3alfisc

Thanks, about to send the query.

ropensci-review-bot avatar Aug 24 '22 19:08 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Aug 24 '22 19:08 ropensci-review-bot

Checks for fwildclusterboot (v0.11)

git hash: 00c38b8d

  • :heavy_check_mark: Package is already on CRAN.
  • :heavy_check_mark: has a 'codemeta.json' file.
  • :heavy_check_mark: has a 'contributing' file.
  • :heavy_multiplication_x: The following functions have no documented return values: [boot_ssc, pval, teststat]
  • :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: Function names are duplicated in other packages
  • :heavy_check_mark: Package has continuous integration checks.
  • :heavy_multiplication_x: Package coverage failed
  • :heavy_multiplication_x: R CMD check found 1 error.
  • :heavy_check_mark: R CMD check found no warnings.

Important: All failing checks above must be addressed prior to proceeding

Package License: GPL-3


1. rOpenSci Statistical Standards (srr package)

This package is in the following category:

  • Regression and Supervised Learning

:heavy_check_mark: All applicable standards [v0.1.0] have been documented in this package (70 complied with; 46 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 441
internal fwildclusterboot 113
internal stats 83
internal utils 8
internal graphics 3
internal compiler 1
imports collapse 14
imports dreamerr 10
imports generics 5
imports dqrng 5
imports MASS 4
imports Matrix 3
imports Matrix.utils 3
imports JuliaConnectoR 1
imports summclust 1
imports sandwich 1
imports Formula NA
imports Rcpp NA
suggests fabricatr 6
suggests fixest NA
suggests lfe NA
suggests ivreg NA
suggests clubSandwich NA
suggests lmtest NA
suggests data.table NA
suggests covr NA
suggests knitr NA
suggests rmarkdown NA
suggests broom NA
suggests modelsummary NA
suggests bench NA
suggests testthat NA
suggests tibble NA
linking_to Rcpp NA
linking_to RcppArmadillo NA
linking_to RcppEigen 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

length (40), call (31), list (30), lapply (20), c (16), t (15), vapply (13), as.vector (12), drop (12), names (12), unique (12), stop (10), ifelse (9), Reduce (9), rep (9), paste0 (8), which (8), data.frame (7), match.call (7), mode (7), nrow (7), sqrt (7), vector (7), as.matrix (6), for (6), ncol (6), replace (6), switch (6), seq_along (5), as.numeric (4), crossprod (4), is.null (4), mean (4), sample (4), solve (4), sum (4), tcrossprod (4), abs (3), col (3), colnames (3), environment (3), q (3), as.factor (2), as.integer (2), attr (2), dim (2), getOption (2), if (2), loadedNamespaces (2), matrix (2), min (2), norm (2), paste (2), Recall (2), split (2), suppressWarnings (2), append (1), as.character (1), cbind (1), class (1), colSums (1), diag (1), do.call (1), eval (1), exp (1), integer (1), is.na (1), is.numeric (1), logical (1), max (1), message (1), row (1), sample.int (1), seq (1), sort (1), Sys.getenv (1), try (1), tryCatch (1), unlist (1)

fwildclusterboot

get_ssc_julia (8), check_set_full_enumeration (7), set_seed (7), teststat (6), boot_algo_julia (5), crosstab (4), get_bootstrap_pvalue (4), get_cluster (4), model_matrix (4), boot_algo2 (3), cpp_get_nb_threads (3), eigenMapMatMult (3), get_ssc (3), get_weights (3), matrix_split (3), demean_fe (2), get_scores (2), gtools_permutations (2), preprocess2.felm (2), preprocess2.fixest (2), preprocess2.lm (2), transform_fe (2), boot_algo3 (1), boottest (1), boottest.felm (1), boottest.fixest (1), boottest.ivreg (1), boottest.lm (1), check_boot_algo3 (1), check_boottest_args_plus (1), check_mboottest_args_plus (1), check_params_in_model (1), check_r_lean (1), check_set_nthreads (1), confint.boottest (1), crosstab4 (1), get_seed (1), get_start_vals (1), getBoottest_boot_algo (1), getBoottest_nthreads (1), glance.boottest (1), invert_p_val (1), is_juliaconnector_prepared (1), mboottest (1), mboottest.felm (1), mboottest.fixest (1), mboottest.lm (1), model_matrix.felm (1), p_val_null2 (1), p_val_null2_x (1), p_val_null2_x_sign_level (1), preprocess2.ivreg (1), to_integer (1), wildboottestHC (1)

stats

weights (25), model.matrix (12), formula (8), coef (6), na.omit (6), model.frame (5), nobs (4), aggregate (3), model.response (3), na.exclude (3), reformulate (2), vcov (2), na.action (1), na.pass (1), rlnorm (1), update (1)

collapse

fsum (7), GRP (4), qF (3)

dreamerr

validate_dots (10)

utils

data (7), combn (1)

fabricatr

draw_binary (2), draw_normal_icc (2), draw_ordered (1), fabricate (1)

dqrng

dqsample (4), dqset.seed (1)

generics

tidy (4), glance (1)

MASS

ginv (4)

graphics

abline (3)

Matrix

t (2), Diagonal (1)

Matrix.utils

aggregate.Matrix (3)

compiler

cmpfun (1)

JuliaConnectoR

juliaImport (1)

sandwich

vcovCL (1)

summclust

vcov_CR3J (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 C++ (7% in 3 files) and R (93% in 32 files)
  • 2 authors
  • 3 vignettes
  • 1 internal data file
  • 12 imported packages
  • 28 exported functions (median 9 lines of code)
  • 140 non-exported functions in R (median 24 lines of code)
  • 14 R functions (median 14 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 32 90.5
files_src 3 84.3
files_vignettes 3 92.4
files_tests 17 95.3
loc_R 4252 94.1
loc_src 341 37.9
loc_vignettes 496 77.9
loc_tests 5516 98.5 TRUE
num_vignettes 3 94.2
data_size_total 14024 72.7
data_size_median 14024 81.0
n_fns_r 168 87.0
n_fns_r_exported 28 76.4
n_fns_r_not_exported 140 89.2
n_fns_src 14 36.7
n_fns_per_file_r 3 53.1
n_fns_per_file_src 5 47.8
num_params_per_fn 2 11.9
loc_per_fn_r 23 66.0
loc_per_fn_r_exp 9 19.2
loc_per_fn_r_not_exp 24 70.4
loc_per_fn_src 14 46.6
rel_whitespace_R 19 94.1
rel_whitespace_src 33 52.2
rel_whitespace_vignettes 41 84.9
rel_whitespace_tests 12 96.6 TRUE
doclines_per_fn_exp 30 32.9
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 141 84.4

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 pkgcheck

GitHub Workflow Results

id name conclusion sha run_number date
2899111163 pages build and deployment success de3182 176 2022-08-21
2921823435 pkgcheck failure 00c38b 41 2022-08-24
2899087820 pkgdown success aba1d7 124 2022-08-21
2921823433 R-CMD-check success 00c38b 484 2022-08-24
2899015892 test-coverage success aba1d7 457 2022-08-21

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following error:

  1. checking tests ... Running ‘testthat.R’ ERROR Running the tests in ‘tests/testthat.R’ failed. Last 13 lines of output:
    1. ├─fwildclusterboot::boottest(...) at test-new-bootstrap-variants.R:243:2
    2. └─fwildclusterboot:::boottest.lm(...)
    3. └─fwildclusterboot:::boot_algo_julia(...)
    4. └─JuliaConnectoR::juliaEval("using WildBootTests")
      
    5.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    6.     ├─base::tryCatch(...)
      
    7.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
    8.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
      
    9.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
      
    10.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
      
    11.       └─JuliaConnectoR:::handleCallbacksAndOutput()
      

[ FAIL 1 | WARN 6 | SKIP 14 | PASS 75 ] Error: Test failures Execution halted

R CMD check generated the following notes:

  1. checking installed package size ... NOTE installed size is 7.5Mb sub-directories of 1Mb or more: libs 6.5Mb
  2. checking R code for possible problems ... NOTE boot_algo3: no visible binding for '<<-' assignment to ‘beta_2g_tilde’

R CMD check generated the following test_fail:

  1. library(testthat)

library(fwildclusterboot)

test_check("fwildclusterboot") Loading required namespace: fixest The variable 'X2' has been removed because of collinearity (see $collin.var). The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test_tidy.R, q = 1 skipped as 'JULIA_BINDIR' not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test_tidy.R, q > 1 skipped as 'JULIA_BINDIR' not found. Loading required namespace: data.table The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-error_warning.R with q = 1 skipped as JULIA_BINDIR not found. Loading required namespace: ivreg Loading required namespace: clubSandwich The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-error_warning.R with q > 1 skipped as JULIA_BINDIR not found. Error in post1 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | 0 | 0 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | Utility_state : operations are possible only for numeric, logical or complex types Error in post1 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | 0 | 0 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | Utility_state : operations are possible only for numeric, logical or complex types Error in post1 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | 0 | 0 | SEclusters : operations are possible only for numeric, logical or complex types Error in post1 | Utility_state : operations are possible only for numeric, logical or complex types The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-global_vars.R skipped as JULIA_BINDR not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-method_equivalence.R I skipped as JULIA_BINDR not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-method_equivalence.R II skipped as JULIA_BINDR not found. Starting Julia ... test-r-vs-julia.R skipped as JULIA_BINDIR not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-seed.R skipped as JULIA_BINDR not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-tstat_equivalence.R I skipped as JULIA_BINDR not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-tstat_equivalence.R II skipped as JULIA_BINDR not found. The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
test-stat_equivalence.R III skipped as JULIA_BINDR not found. Error in Q1_immigration + Q2_defense : non-numeric argument to binary operator Error in Q1_immigration + Q2_defense : non-numeric argument to binary operator [ FAIL 1 | WARN 6 | SKIP 14 | PASS 75 ]

══ Skipped tests ═══════════════════════════════════════════════════════════════ • empty test (14)

══ Warnings ════════════════════════════════════════════════════════════════════ ── Warning (test_multicollinearity.R:17:3): test multicollinearity ───────────── the matrix is either rank-deficient or indefinite Backtrace:

  1. lfe::felm(Y ~ X1 + X2, data = data) at test_multicollinearity.R:17:2
  2. lfe:::felm.mm(...)
  3. lfe:::newols(...)
  4. lfe:::cholx(cp)
  5. base::chol.default(mat, pivot = TRUE, tol = tol) ── Warning (test-new-bootstrap-variants.R:243:3): variants 31 R vs Julia ─────── There are only 1024 unique draws from the rademacher distribution for 10 bootstrap clusters. Therefore, B = 1024 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 1024 bootstrap draws, only 2^(#clusters - 1) = 512 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  6. fwildclusterboot::boottest(...) at test-new-bootstrap-variants.R:243:2
  7. fwildclusterboot:::boottest.lm(...)
  8. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:45:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  9. fwildclusterboot::boottest(...) at test-uncategorized.R:45:2
  10. fwildclusterboot:::boottest.fixest(...)
  11. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:53:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  12. fwildclusterboot::boottest(...) at test-uncategorized.R:53:2
  13. fwildclusterboot:::boottest.fixest(...)
  14. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:61:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  15. fwildclusterboot::boottest(...) at test-uncategorized.R:61:2
  16. fwildclusterboot:::boottest.fixest(...)
  17. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:69:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  18. fwildclusterboot::boottest(...) at test-uncategorized.R:69:2
  19. fwildclusterboot:::boottest.fixest(...)
  20. fwildclusterboot:::check_set_full_enumeration(...)

══ Failed tests ════════════════════════════════════════════════════════════════ ── Error (test-new-bootstrap-variants.R:243:3): variants 31 R vs Julia ───────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package WildBootTests not found in current path.

  • Run import Pkg; Pkg.add("WildBootTests") to install the WildBootTests package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─fwildclusterboot::boottest(...) at test-new-bootstrap-variants.R:243:2
    2. └─fwildclusterboot:::boottest.lm(...)
    3. └─fwildclusterboot:::boot_algo_julia(...)
    4. └─JuliaConnectoR::juliaEval("using WildBootTests")
      
    5.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    6.     ├─base::tryCatch(...)
      
    7.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
    8.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
      
    9.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
      
  1.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  2.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

[ FAIL 1 | WARN 6 | SKIP 14 | PASS 75 ] Error: Test failures Execution halted

R CMD check generated the following check_fails:

  1. rcmdcheck_tests_pass
  2. rcmdcheck_reasonable_installed_size

Test coverage with covr

ERROR: Test Coverage Failed

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
get_cluster 45
gtools_permutations 34
boot_algo3 23
boot_algo_julia 21
getBoottest_nthreads 16
check_boottest_args_plus 15

Static code analyses with lintr

lintr found the following 33 potential issues:

message number of times
Avoid library() and require() calls in packages 13
Lines should not be more than 80 characters. 20

5. Other Checks

Details of other checks (click to open)

:heavy_multiplication_x: The following function name is duplicated in other packages:

    • pval from CIPerm, dostats, dostats, GUIDE, learnstats, molic, mosaic, overlapptest, RPtests, timereg

Package Versions

package version
pkgstats 0.1.1.20
pkgcheck 0.1.0.9
srr 0.0.1.178

Editor-in-Chief Instructions:

Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.

ropensci-review-bot avatar Aug 24 '22 20:08 ropensci-review-bot

I just ran the pkgcheck action in my own repo, and - even though the pkgcheck still complained about my compliance with standards - it finished! This of course means that from now on, I will be able to test in my own repo and can stop polluting this space 😄

s3alfisc avatar Aug 24 '22 21:08 s3alfisc

@ropensci-review-bot check package

s3alfisc avatar Sep 24 '22 13:09 s3alfisc

Thanks, about to send the query.

ropensci-review-bot avatar Sep 24 '22 13:09 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Sep 24 '22 13:09 ropensci-review-bot

Checks for fwildclusterboot (v0.11.2)

git hash: 94019e7e

  • :heavy_check_mark: Package is already on CRAN.
  • :heavy_check_mark: has a 'codemeta.json' file.
  • :heavy_check_mark: has a 'contributing' file.
  • :heavy_multiplication_x: The following function has no documented return value: [sunab]
  • :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_multiplication_x: These functions do not have examples: [sunab].
  • :heavy_check_mark: Package has continuous integration checks.
  • :heavy_multiplication_x: Package coverage failed
  • :heavy_multiplication_x: R CMD check found 1 error.
  • :heavy_multiplication_x: R CMD check found 2 warnings.
  • :eyes: Function names are duplicated in other packages

Important: All failing checks above must be addressed prior to proceeding

(Checks marked with :eyes: may be optionally addressed.)

Package License: GPL-3


1. rOpenSci Statistical Standards (srr package)

This package is in the following category:

  • Regression and Supervised Learning

:heavy_check_mark: All applicable standards [v0.1.0] have been documented in this package (70 complied with; 46 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 516
internal fwildclusterboot 128
internal stats 84
internal utils 9
internal graphics 3
internal compiler 1
imports collapse 14
imports dreamerr 10
imports generics 5
imports dqrng 5
imports MASS 4
imports Matrix 3
imports Matrix.utils 3
imports JuliaConnectoR 1
imports summclust 1
imports sandwich 1
imports Formula NA
imports Rcpp NA
suggests fabricatr 6
suggests fixest NA
suggests lfe NA
suggests ivreg NA
suggests clubSandwich NA
suggests lmtest NA
suggests data.table NA
suggests covr NA
suggests knitr NA
suggests rmarkdown NA
suggests broom NA
suggests modelsummary NA
suggests bench NA
suggests testthat NA
suggests tibble NA
suggests did2s NA
linking_to Rcpp NA
linking_to RcppArmadillo NA
linking_to RcppEigen 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

length (44), list (34), call (31), c (22), lapply (22), names (18), t (15), unique (15), drop (13), vapply (13), as.vector (12), paste0 (12), data.frame (10), rep (10), stop (10), ifelse (9), mode (9), Reduce (9), vector (9), which (9), for (8), nrow (8), sqrt (8), match.call (7), as.matrix (6), ncol (6), replace (6), sum (6), switch (6), is.null (5), matrix (5), seq_along (5), as.numeric (4), crossprod (4), gsub (4), mean (4), sample (4), solve (4), tcrossprod (4), abs (3), col (3), colnames (3), colSums (3), environment (3), getOption (3), if (3), min (3), paste (3), q (3), unlist (3), as.factor (2), as.integer (2), attr (2), cbind (2), grepl (2), loadedNamespaces (2), max (2), norm (2), Recall (2), return (2), sign (2), split (2), sprintf (2), substr (2), suppressWarnings (2), Sys.getenv (2), append (1), as.character (1), class (1), diag (1), dim (1), do.call (1), eval (1), exp (1), integer (1), is.na (1), is.numeric (1), isTRUE (1), logical (1), message (1), nchar (1), row (1), sample.int (1), sapply (1), seq (1), sort (1), tryCatch (1)

fwildclusterboot

format_message (8), get_ssc_julia (8), check_set_full_enumeration (7), set_seed (7), teststat (6), boot_algo_julia (5), crosstab (4), get_bootstrap_pvalue (4), get_cluster (4), boot_algo2 (3), cpp_get_nb_threads (3), eigenMapMatMult (3), get_ssc (3), get_weights (3), model_matrix (3), process_R (3), boottest (2), demean_fe (2), get_scores (2), gtools_permutations (2), matrix_split (2), preprocess2.felm (2), preprocess2.fixest (2), preprocess2.lm (2), transform_fe (2), boot_aggregate (1), boot_algo3 (1), boot_algo3_crv1 (1), boot_algo3_crv3 (1), boottest.felm (1), boottest.fixest (1), boottest.ivreg (1), boottest.lm (1), check_boot_algo3 (1), check_boottest_args_plus (1), check_engine_btype (1), check_mboottest_args_plus (1), check_params_in_model (1), check_r_lean (1), check_set_nthreads (1), confint.boottest (1), crosstab4 (1), format_alert (1), format_error (1), format_warning (1), get_c_all_boot_cpp (1), get_se_all_boot_cpp (1), get_seed (1), get_start_vals (1), getBoottest_engine (1), getBoottest_nthreads (1), glance.boottest (1), invert_p_val (1), is_juliaconnector_prepared (1), manipulate_object (1), p_val_null2 (1), p_val_null2_x (1), p_val_null2_x_sign_level (1), preprocess2.ivreg (1), to_integer (1), wildboottestHC (1)

stats

weights (24), model.matrix (13), formula (8), coef (7), na.omit (6), model.frame (5), nobs (4), aggregate (3), model.response (3), na.exclude (3), reformulate (2), vcov (2), na.action (1), na.pass (1), rlnorm (1), update (1)

collapse

fsum (7), GRP (4), qF (3)

dreamerr

validate_dots (10)

utils

data (7), combn (1), txtProgressBar (1)

fabricatr

draw_binary (2), draw_normal_icc (2), draw_ordered (1), fabricate (1)

dqrng

dqsample (4), dqset.seed (1)

generics

tidy (4), glance (1)

MASS

ginv (4)

graphics

abline (3)

Matrix

t (2), Diagonal (1)

Matrix.utils

aggregate.Matrix (3)

compiler

cmpfun (1)

JuliaConnectoR

juliaImport (1)

sandwich

vcovCL (1)

summclust

vcov_CR3J (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 C++ (10% in 4 files) and R (90% in 34 files)
  • 2 authors
  • 3 vignettes
  • 1 internal data file
  • 12 imported packages
  • 34 exported functions (median 9 lines of code)
  • 168 non-exported functions in R (median 20 lines of code)
  • 21 R functions (median 17 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 34 91.4
files_src 4 87.0
files_vignettes 3 92.4
files_tests 18 95.7
loc_R 4677 94.8
loc_src 500 46.8
loc_vignettes 586 81.7
loc_tests 5821 98.6 TRUE
num_vignettes 3 94.2
data_size_total 14024 72.7
data_size_median 14024 81.0
n_fns_r 202 89.9
n_fns_r_exported 34 81.0
n_fns_r_not_exported 168 91.5
n_fns_src 21 47.2
n_fns_per_file_r 3 55.2
n_fns_per_file_src 5 53.2
num_params_per_fn 2 11.9
loc_per_fn_r 18 54.7
loc_per_fn_r_exp 9 19.2
loc_per_fn_r_not_exp 20 63.0
loc_per_fn_src 17 59.6
rel_whitespace_R 20 95.3 TRUE
rel_whitespace_src 30 58.7
rel_whitespace_vignettes 35 84.9
rel_whitespace_tests 13 97.2 TRUE
doclines_per_fn_exp 31 34.8
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 181 87.5

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 pkgcheck

GitHub Workflow Results

id name conclusion sha run_number date
3118455761 pages build and deployment success e98a12 189 2022-09-24
3118431180 pkgcheck NA ee479f 93 2022-09-24
3118431181 pkgdown success ee479f 138 2022-09-24
3118431178 R-CMD-check success ee479f 542 2022-09-24
3118431179 test-coverage success ee479f 478 2022-09-24

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following error:

  1. checking tests ... Running ‘testthat.R’ ERROR Running the tests in ‘tests/testthat.R’ failed. Last 13 lines of output: 4. ├─fwildclusterboot::boottest(...) 5. └─fwildclusterboot:::boottest.ivreg(...) 6. └─fwildclusterboot:::set_seed(...) 7. └─JuliaConnectoR::juliaEval("using StableRNGs") 8. └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr) 9. ├─base::tryCatch(...) 10. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 11. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 12. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 13. └─JuliaConnectoR:::doCallJulia(funName, jlargs) 14. └─JuliaConnectoR:::handleCallbacksAndOutput()

[ FAIL 16 | WARN 11 | SKIP 0 | PASS 414 ] Error: Test failures Execution halted

R CMD check generated the following warnings:

  1. checking dependencies in R code ... WARNING '::' or ':::' import not declared from: ‘rstudioapi’ 'loadNamespace' or 'requireNamespace' call not declared from: ‘rstudioapi’
  2. checking S3 generic/method consistency ... WARNING tidy: function(x, ...) tidy.boottest: function(object, ...)

tidy: function(x, ...) tidy.mboottest: function(object, ...)

See section ‘Generic functions and methods’ in the ‘Writing R Extensions’ manual.

R CMD check generated the following notes:

  1. checking installed package size ... NOTE installed size is 8.8Mb sub-directories of 1Mb or more: libs 7.7Mb
  2. checking R code for possible problems ... NOTE .wrap_message_line: no visible global function definition for ‘.bold’ .wrap_message_line: no visible global function definition for ‘.italic’ .wrap_message_line: no visible global function definition for ‘.blue’ Undefined global functions or variables: .blue .bold .italic

R CMD check generated the following test_fail:

  1. library(testthat)

library(fwildclusterboot)

test_check("fwildclusterboot") Loading required namespace: fixest The variable 'X2' has been removed because of collinearity (see $collin.var). Starting Julia ... Loading required namespace: data.table R Variables 'log_income::17.2069212919256:Q1_immigration::3' and 'log_income::18.0802367820713:Q1_immigration::3' have been removed because of collinearity (see $collin.var). NOTE: 2 fixed-effect singletons were removed (2 observations). WildBootTests.jl Loading required namespace: ivreg Part 1: Full enumeration Tests (deterministic) start ols/wls type: rademacher p-val: two-tailed null imposed: TRUE rademacher two-tailed TRUE type: rademacher p-val: equal-tailed null imposed: TRUE rademacher equal-tailed TRUE type: rademacher p-val: > null imposed: TRUE rademacher

TRUE type: rademacher p-val: < null imposed: TRUE rademacher < TRUE julia connector prepared? TRUEPart 1: Full enumeration Tests (deterministic) start ols/wls type: rademacher p-val: two-tailed null imposed: TRUE rademacher two-tailed TRUE Variance contained negative values in the diagonal and was 'fixed' (a la Cameron, Gelbach & Miller 2011). Variance contained negative values in the diagonal and was 'fixed' (a la Cameron, Gelbach & Miller 2011). Variance contained negative values in the diagonal and was 'fixed' (a la Cameron, Gelbach & Miller 2011). Variance contained negative values in the diagonal and was 'fixed' (a la Cameron, Gelbach & Miller 2011). boottest() boottest() start ols/wls Part 1: Large B Tests start ols/wls type: rademacher p-val: two-tailed null imposed: TRUE rademacher two-tailed TRUE The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
julia connector prepared? TRUE The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
julia connector prepared? TRUE The Julia environment variable 'JULIA_BINDIR' could not be found.Therefore, all tests that involve 'WildBootTests.jl' will be skipped.
julia connector prepared? TRUE [ FAIL 16 | WARN 11 | SKIP 0 | PASS 414 ]

══ Warnings ════════════════════════════════════════════════════════════════════ ── Warning (test_tidy.R:22:5): test tidiers with q = 1 ───────────────────────── There are only 1024 unique draws from the rademacher distribution for 10 bootstrap clusters. Therefore, B = 1024 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 1024 bootstrap draws, only 2^(#clusters - 1) = 512 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:

  1. fwildclusterboot::boottest(...) at test_tidy.R:22:4
  2. fwildclusterboot:::boottest.lm(...)
  3. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test_tidy.R:28:5): test tidiers with q = 1 ───────────────────────── There are only 1024 unique draws from the rademacher distribution for 10 bootstrap clusters. Therefore, B = 1024 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 1024 bootstrap draws, only 2^(#clusters - 1) = 512 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  4. fwildclusterboot::boottest(...) at test_tidy.R:28:4
  5. fwildclusterboot:::boottest.lm(...)
  6. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-error_warning.R:1208:9): errors and warnings q = 1 ──────────── Currently, boottest() calculates confidence intervals for one-sided hypotheses only for engine = 'WildBootTests.jl'. Backtrace:
  7. testthat::expect_error(...) at test-error_warning.R:1208:8
  8. fwildclusterboot:::boottest.fixest(...)
  9. fwildclusterboot:::r_algo_checks(...) ── Warning (test-error_warning.R:1220:9): errors and warnings q = 1 ──────────── Currently, boottest() calculates confidence intervals for one-sided hypotheses only for engine = 'WildBootTests.jl'. Backtrace:
  10. testthat::expect_error(...) at test-error_warning.R:1220:8
  11. fwildclusterboot:::boottest.felm(...)
  12. fwildclusterboot:::r_algo_checks(...) ── Warning (test-method_equivalence.R:135:5): Do different, but equivalent ways to specify linear models lead to equivalent results? ── Negative eigenvalues set to zero in multiway clustered variance matrix. See felm(...,psdef=FALSE) Backtrace:
  13. lfe::felm(...) at test-method_equivalence.R:135:4
  14. lfe:::felm.mm(...)
  15. lfe:::newols(...) ── Warning (test-method_equivalence.R:160:5): Do different, but equivalent ways to specify linear models lead to equivalent results? ── Negative eigenvalues set to zero in multiway clustered variance matrix. See felm(...,psdef=FALSE) Backtrace:
  16. lfe::felm(...) at test-method_equivalence.R:160:4
  17. lfe:::felm.mm(...)
  18. lfe:::newols(...) ── Warning (test-method_equivalence.R:167:5): Do different, but equivalent ways to specify linear models lead to equivalent results? ── Negative eigenvalues set to zero in multiway clustered variance matrix. See felm(...,psdef=FALSE) Backtrace:
  19. lfe::felm(...) at test-method_equivalence.R:167:4
  20. lfe:::felm.mm(...)
  21. lfe:::newols(...) ── Warning (test-uncategorized.R:45:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  22. fwildclusterboot::boottest(...) at test-uncategorized.R:45:2
  23. fwildclusterboot:::boottest.fixest(...)
  24. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:53:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  25. fwildclusterboot::boottest(...) at test-uncategorized.R:53:2
  26. fwildclusterboot:::boottest.fixest(...)
  27. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:61:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  28. fwildclusterboot::boottest(...) at test-uncategorized.R:61:2
  29. fwildclusterboot:::boottest.fixest(...)
  30. fwildclusterboot:::check_set_full_enumeration(...) ── Warning (test-uncategorized.R:69:3): uncategorized tests ──────────────────── There are only 64 unique draws from the rademacher distribution for 6 bootstrap clusters. Therefore, B = 64 with full enumeration. Consider using webb weights instead. Further, note that under full enumeration and with B = 64 bootstrap draws, only 2^(#clusters - 1) = 32 distinct t-statistics and p-values can be computed. For a more thorough discussion, see Webb Reworking wild bootstrap based inference for clustered errors (2013). Backtrace:
  31. fwildclusterboot::boottest(...) at test-uncategorized.R:69:2
  32. fwildclusterboot:::boottest.fixest(...)
  33. fwildclusterboot:::check_set_full_enumeration(...)

══ Failed tests ════════════════════════════════════════════════════════════════ ── Error (test_tidy.R:35:5): test tidiers with q = 1 ─────────────────────────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─fwildclusterboot::boottest(...) at test_tidy.R:35:4
    2. └─fwildclusterboot:::boottest.lm(...)
    3. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    4. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    5.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    6.     ├─base::tryCatch(...)
      
    7.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
    8.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
      
    9.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
      
  1.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  2.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test_tidy.R:82:3): test tidiers with q > 1 ─────────────────────────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─fwildclusterboot::mboottest(...) at test_tidy.R:82:2
    2. └─fwildclusterboot:::mboottest.lm(...)
    3. └─fwildclusterboot:::set_seed(...)
    4. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    5.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    6.     ├─base::tryCatch(...)
      
    7.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
    8.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
      
    9.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
      
  1.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  2.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Failure (test-error_warning.R:625:7): errors and warnings q = 1 ───────────── boottest(...) did not throw the expected message. ── Failure (test-error_warning.R:638:9): errors and warnings q = 1 ───────────── boottest(...) did not throw the expected message. ── Failure (test-error_warning.R:650:9): errors and warnings q = 1 ───────────── boottest(...) did not throw the expected message. ── Error (test-error_warning.R:246:9): errors and warnings q = 1 ─────────────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─base::suppressWarnings(...) at test-error_warning.R:246:8
    2. │ └─base::withCallingHandlers(...)
    3. ├─testthat::expect_warning(...)
    4. │ └─testthat:::expect_condition_matching(...)
    5. │ └─testthat:::quasi_capture(...)
    6. │ ├─testthat (local) .capture(...)
    7. │ │ └─base::withCallingHandlers(...)
    8. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    9. ├─fwildclusterboot::boottest(...)
  1. └─fwildclusterboot:::boottest.lm(...)
  2. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
  3. └─JuliaConnectoR::juliaEval("using StableRNGs")
    
  4.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
    
  5.     ├─base::tryCatch(...)
    
  6.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
    
  7.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  8.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  9.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  10.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-error_warning.R:1509:5): error warning IV/WRE and q > 1 ───────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─testthat::expect_warning(...) at test-error_warning.R:1509:4
    2. │ └─testthat:::expect_condition_matching(...)
    3. │ └─testthat:::quasi_capture(...)
    4. │ ├─testthat (local) .capture(...)
    5. │ │ └─base::withCallingHandlers(...)
    6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    7. ├─base::suppressMessages(...)
    8. │ └─base::withCallingHandlers(...)
    9. ├─fwildclusterboot::boottest(...)
  1. └─fwildclusterboot:::boottest.ivreg(...)
  2. └─fwildclusterboot:::set_seed(...)
  3. └─JuliaConnectoR::juliaEval("using StableRNGs")
    
  4.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
    
  5.     ├─base::tryCatch(...)
    
  6.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
    
  7.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  8.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  9.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  10.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-full-enumeration.R:295:13): test full enumeration cases: r and julia ── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─base::suppressWarnings(...) at test-full-enumeration.R:295:12
    2. │ └─base::withCallingHandlers(...)
    3. ├─fwildclusterboot::boottest(...)
    4. └─fwildclusterboot:::boottest.lm(...)
    5. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    6. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    7.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    8.     ├─base::tryCatch(...)
      
    9.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
  1.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  2.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  3.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  4.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-global_vars.R:18:5): global engine ────────────────────────────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─base::suppressWarnings(...) at test-global_vars.R:18:4
    2. │ └─base::withCallingHandlers(...)
    3. ├─fwildclusterboot::boottest(...)
    4. └─fwildclusterboot:::boottest.lm(...)
    5. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    6. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    7.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    8.     ├─base::tryCatch(...)
      
    9.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
  1.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  2.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  3.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  4.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-method_equivalence.R:1227:5): Do different, but equivalent ways to specify linear models lead to equivalent results? ── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. └─fwildclusterboot (local) create_models(clustid = "group_id1") at test-method_equivalence.R:1227:4
    2. ├─base::assign(...) at test-method_equivalence.R:187:8
    3. ├─base::suppressWarnings(...)
    4. │ └─base::withCallingHandlers(...)
    5. ├─fwildclusterboot::boottest(...)
    6. └─fwildclusterboot:::boottest.lm(...)
    7. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
      
    8.   └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    9.     └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
  1.       ├─base::tryCatch(...)
    
  2.       │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
    
  3.       │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  4.       │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  5.       └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  6.         └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-new-bootstrap-variants.R:271:5): variants 31 R vs Julia ───────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─fwildclusterboot::boottest(...) at test-new-bootstrap-variants.R:271:4
    2. └─fwildclusterboot:::boottest.lm(...)
    3. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    4. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    5.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    6.     ├─base::tryCatch(...)
      
    7.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
    8.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
      
    9.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
      
  1.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  2.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-r-vs-julia.R:86:15): test r against Julia I: stochastic tests ─── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─base::suppressWarnings(...) at test-r-vs-julia.R:86:14
    2. │ └─base::withCallingHandlers(...)
    3. ├─fwildclusterboot::boottest(...)
    4. └─fwildclusterboot:::boottest.lm(...)
    5. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    6. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    7.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    8.     ├─base::tryCatch(...)
      
    9.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
  1.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  2.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  3.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  4.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-seed.R:31:7): seed works for OLS ──────────────────────────────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─base::suppressMessages(...) at test-seed.R:31:6
    2. │ └─base::withCallingHandlers(...)
    3. ├─fwildclusterboot::boottest(...)
    4. └─fwildclusterboot:::boottest.lm(...)
    5. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    6. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    7.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    8.     ├─base::tryCatch(...)
      
    9.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
  1.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  2.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  3.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  4.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-tstat_equivalence.R:428:19): t-stat equivalence OLS - WildBootTests ── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. ├─base::suppressWarnings(...) at test-tstat_equivalence.R:428:18
    2. │ └─base::withCallingHandlers(...)
    3. ├─fwildclusterboot::boottest(...)
    4. └─fwildclusterboot:::boottest.lm(...)
    5. └─fwildclusterboot:::set_seed(seed = seed, engine = engine, type = type)
    6. └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    7.   └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    8.     ├─base::tryCatch(...)
      
    9.     │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
      
  1.     │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  2.     │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  3.     └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  4.       └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-tstat_equivalence.R:882:5): t-stat equivalence OLS q > 1 ──────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. └─fwildclusterboot (local) wald_test(run_this_test = TRUE) at test-tstat_equivalence.R:882:4
    2. ├─base::suppressWarnings(...) at test-tstat_equivalence.R:671:8
    3. │ └─base::withCallingHandlers(...)
    4. ├─fwildclusterboot::mboottest(...)
    5. └─fwildclusterboot:::mboottest.lm(...)
    6. └─fwildclusterboot:::set_seed(...)
      
    7.   └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    8.     └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    9.       ├─base::tryCatch(...)
      
  1.       │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
    
  2.       │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  3.       │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  4.       └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  5.         └─JuliaConnectoR:::handleCallbacksAndOutput()
    

── Error (test-tstat_equivalence.R:966:5): t-stat equivalence IV ─────────────── Error: Evaluation in Julia failed. Original Julia error message: LoadError: ArgumentError: Package StableRNGs not found in current path.

  • Run import Pkg; Pkg.add("StableRNGs") to install the StableRNGs package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 [4] eval @ ./boot.jl:368 [inlined] [5] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:1428 [6] include_string (repeats 2 times) @ ./loading.jl:1438 [inlined] [7] mainevalcmd(str::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:150 [8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./essentials.jl:729 [9] invokelatest(::Any, ::Any, ::Vararg{Any}) @ Base ./essentials.jl:726 [10] evaluate!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:67 [11] evaluate_checked!(call::Main.RConnector.Call, communicator::Main.RConnector.CommunicatoR{Sockets.TCPSocket}) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/evaluating.jl:55 [12] serve_repl(sock::Sockets.TCPSocket) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:185 [13] serve(port_hint::Int64; multiclient::Bool, portfile::String) @ Main.RConnector /usr/local/lib/R/site-library/JuliaConnectoR/Julia/communicating.jl:152 [14] top-level scope @ /usr/local/lib/R/site-library/JuliaConnectoR/Julia/main.jl:23 [15] include(mod::Module, _path::String) @ Base ./Base.jl:419 [16] exec_options(opts::Base.JLOptions) @ Base ./client.jl:303 [17] _start() @ Base ./client.jl:522 in expression starting at string:1 Backtrace: ▆
    1. └─fwildclusterboot (local) iv_test(run_this_test = TRUE) at test-tstat_equivalence.R:966:4
    2. ├─base::suppressWarnings(...) at test-tstat_equivalence.R:931:8
    3. │ └─base::withCallingHandlers(...)
    4. ├─fwildclusterboot::boottest(...)
    5. └─fwildclusterboot:::boottest.ivreg(...)
    6. └─fwildclusterboot:::set_seed(...)
      
    7.   └─JuliaConnectoR::juliaEval("using StableRNGs")
      
    8.     └─JuliaConnectoR::juliaCall("RConnector.mainevalcmd", expr)
      
    9.       ├─base::tryCatch(...)
      
  1.       │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
    
  2.       │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
    
  3.       │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
    
  4.       └─JuliaConnectoR:::doCallJulia(funName, jlargs)
    
  5.         └─JuliaConnectoR:::handleCallbacksAndOutput()
    

[ FAIL 16 | WARN 11 | SKIP 0 | PASS 414 ] Error: Test failures Execution halted

R CMD check generated the following check_fails:

  1. rcmdcheck_undeclared_imports
  2. rcmdcheck_undeclared_loadnamespace_requirenamespace
  3. rcmdcheck_undefined_globals
  4. rcmdcheck_tests_pass
  5. rcmdcheck_reasonable_installed_size

Test coverage with covr

ERROR: Test Coverage Failed

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
get_cluster 35
gtools_permutations 34
boot_algo3 24
boot_aggregate 22
boot_algo_julia 21
getBoottest_nthreads 16
boottest.fixest 15
boottest.lm 15
check_boottest_args_plus 15

Static code analyses with lintr

lintr found the following 70 potential issues:

message number of times
Avoid library() and require() calls in packages 13
Avoid using sapply, consider vapply instead, that's type safe 1
Lines should not be more than 80 characters. 11
Use <-, not =, for assignment. 45

5. Other Checks

Details of other checks (click to open)

:heavy_multiplication_x: The following 2 function names are duplicated in other packages:

    • format_message from insight
    • pval from CIPerm, dostats, dostats, GUIDE, learnstats, molic, mosaic, overlapptest, RPtests, timereg

Package Versions

package version
pkgstats 0.1.1.44
pkgcheck 0.1.0.24
srr 0.0.1.180

Editor-in-Chief Instructions:

Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.

ropensci-review-bot avatar Sep 24 '22 14:09 ropensci-review-bot

Dear @s3alfisc

Today starts my rotation as EiC and I'm reviewing the status of current open reviews.

Thanks a lot for your efforts in meeting our standards. Where are we standing now? Do you feel ready for me to resume the review process? The next step would be to re-run checks and then look for a handling editor.

maurolepore avatar Feb 01 '23 13:02 maurolepore

Hi @maurolepore - thanks for reaching out - I was actually about to do the same this weekend! Unfortunately, I never got the pkgcheck to run properly, neither on my local machine nor on github actions. But I have not really tried in a while (I had given up at some point) - so I'll try once again and if I cannot get it to run locally, is it ok if I trigger the workflow bot one more time? One complication is that I am running unit tests against WildBootTests.jl, and in order to run the pkgcheck workflows, I'd have to skip those tests, which would lead to a drop in test coverage to around 65%.

s3alfisc avatar Feb 01 '23 19:02 s3alfisc

Actually, pkgcheck is now running on my local machine - so I'll respond to it's feedback, update all standards based on a few new features, and will notify you once everything is done!

s3alfisc avatar Feb 01 '23 19:02 s3alfisc

I've run the pkgcheck action, with the following results:

  • the pkgcheck coverage test fails, as pkgcheck does not run some tests that my local github actions CI runs (coverage is at 89% running all tests, codecov link)
  • installation on ubuntu-lastest fails. No problems on older versions of ubuntu via github actions.
  • The following functions are used in other packages: pval, error_message - which I think should be fine?

I'll start the bot to confirm all of this later today & then you can decide if you think everything is good enough to proceed, @maurolepore ?

s3alfisc avatar Feb 01 '23 20:02 s3alfisc

@ropensci-review-bot check package

s3alfisc avatar Feb 01 '23 21:02 s3alfisc

Thanks, about to send the query.

ropensci-review-bot avatar Feb 01 '23 21:02 ropensci-review-bot

:rocket:

Editor check started

:wave:

ropensci-review-bot avatar Feb 01 '23 21:02 ropensci-review-bot