CRAN Package Check Results for Maintainer ‘Joris Chau <joris.chau at openanalytics.eu>’

Last updated on 2026-02-15 13:53:03 CET.

Package ERROR NOTE OK
checkglobals 14
gslnls 14
pdSpecEst 1 2 11
rrapply 14

Package checkglobals

Current CRAN status: OK: 14

Package gslnls

Current CRAN status: OK: 14

Package pdSpecEst

Current CRAN status: ERROR: 1, NOTE: 2, OK: 11

Version: 1.2.6
Check: examples
Result: ERROR Running examples in ‘pdSpecEst-Ex.R’ failed The error most likely occurred in: > ### Name: Expm > ### Title: Riemannian HPD exponential map > ### Aliases: Expm > > ### ** Examples > > ## Generate random Hermitian matrix > H <- matrix(complex(real = rnorm(9), imaginary = rnorm(9)), nrow = 3) > diag(H) <- rnorm(3) > H[lower.tri(H)] <- t(Conj(H))[lower.tri(H)] > ## Generate random HPD matrix > p <- matrix(complex(real = rnorm(9), imaginary = rnorm(9)), nrow = 3) > P <- t(Conj(p)) %*% p > ## Compute exponential map > Expm(P, H) Error: sqrtmat_sympd(): transformation failed Execution halted Flavor: r-devel-macos-arm64

Version: 1.2.6
Check: tests
Result: ERROR Running ‘testthat.R’ [0s/0s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(pdSpecEst) > > test_check("pdSpecEst") *** caught segfault *** address 0x0, cause 'invalid permissions' Traceback: 1: Expm(diag(2, 2), H.coeff(v0/sqrt(2 * pi) * exp(-((t - 0.5)/0.3)^2/2), inverse = TRUE)) 2: FUN(X[[i]], ...) 3: lapply(X = X, FUN = FUN, ...) 4: sapply(x, function(t) { Expm(diag(2, 2), H.coeff(v0/sqrt(2 * pi) * exp(-((t - 0.5)/0.3)^2/2), inverse = TRUE))}, simplify = "array") 5: rExamples1D(n, 2, "gaussian", return.ts = T, noise = "periodogram") 6: eval(code, test_env) 7: eval(code, test_env) 8: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 9: doTryCatch(return(expr), name, parentenv, handler) 10: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 11: tryCatchList(expr, classes, parentenv, handlers) 12: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 13: doWithOneRestart(return(expr), restart) 14: withOneRestart(expr, restarts[[1L]]) 15: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 16: test_code(code, parent.frame()) 17: test_that("Correctly working 1D spectral estimation and clustering", { n <- 2^7 d <- 2 S <- 5 example <- rExamples1D(n, 2, "gaussian", return.ts = T, noise = "periodogram") expect_equal(dim(example$f), c(d, d, n)) expect_equal(dim(example$P), c(d, d, n)) expect_equal(dim(example$ts), c(2 * n, d)) ts.sim <- rARMA(n, d, array(0, c(d, d, 2)), array(0, c(d, d, 2)), diag(d)) expect_type(ts.sim$X, "double") expect_equal(dim(ts.sim$X), c(n, d)) pgram <- pdPgram(example$ts) expect_equal(dim(pgram$P), c(d, d, n)) expect_equal(length(pgram$freq), n) expect_equal(pgram$P, example$P) wt1 <- WavTransf1D(example$P, periodic = T) wt2 <- WavTransf1D(example$P, metric = "logEuclidean") expect_equal(length(unlist(wt1$D)), length(unlist(wt1$D.white))) expect_equal(length(unlist(wt2$D)), length(unlist(wt2$D.white))) expect_equal(InvWavTransf1D(wt1$D, wt1$M0, periodic = T), example$P) expect_equal(InvWavTransf1D(wt2$D, wt2$M0, metric = "logEuclidean"), example$P) wt1_den <- pdCART(wt1$D, wt1$D.white, order = 5, periodic = T) wt2_den <- pdCART(wt2$D, wt2$D.white, order = 5) expect_length(unlist(wt1_den$w), length(unlist(wt2_den$w))) expect_length(unlist(wt1_den$D_w), length(unlist(wt1$D))) expect_length(unlist(wt2_den$D_w), length(unlist(wt2$D))) f1 <- pdSpecEst1D(example$P) f2 <- pdSpecEst1D(example$P, metric = "logEuclidean") expect_is(f1$f, is(example$P)) expect_equal(dim(f1$f), dim(example$P)) expect_type(f1$D[[1]], "complex") expect_type(f2$D[[1]], "complex") expect_length(unlist(f1$D), 300) expect_length(unlist(f2$D), 300) expect_length(c(f1$M0), 20) expect_length(c(f2$M0), 20) expect_type(f1$tree.weights[[1]], "logical") expect_type(f2$tree.weights[[1]], "logical") expect_length(unlist(f1$tree.weights), 62) expect_length(unlist(f2$tree.weights), 62) cl <- pdkMeans(example$P[, , 1:10], K = 2) expect_true(all(cl$cl.assignments %in% c(0, 1))) expect_equal(sum(cl$cl.assignments), 10) expect_equal(dim(cl$cl.assignments), c(10, 2)) expect_equal(dim(cl$cl.centroids), c(2, 2, 2)) P_s <- rExamples1D(n, 2, "gaussian", replicates = S)$P cl <- pdSpecClust1D(P_s, K = 2, metric = "logEuclidean") expect_equal(sum(cl$cl.prob), S) expect_length(cl$cl.centers.D, 2) expect_length(unlist(cl$cl.centers.D[[1]]), 300) expect_length(unlist(cl$cl.centers.D[[2]]), 300) expect_equal(dim(cl$cl.centers.M0[[1]]), dim(wt1$M0)) expect_equal(dim(cl$cl.centers.M0[[2]]), dim(wt1$M0)) expect_type(cl$cl.jmax, "double") f3 <- pdSplineReg(example$f, example$f, lam = 0.1, Nd = 10, max.iter = 10) expect_equal(dim(f3$f), c(d, d, 10)) expect_type(f3$cost, "double") expect_type(f3$total_iter, "double") }) 18: eval(code, test_env) 19: eval(code, test_env) 20: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 21: doTryCatch(return(expr), name, parentenv, handler) 22: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 23: tryCatchList(expr, classes, parentenv, handlers) 24: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 25: doWithOneRestart(return(expr), restart) 26: withOneRestart(expr, restarts[[1L]]) 27: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 28: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new()) 29: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call) 30: FUN(X[[i]], ...) 31: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call) 32: doTryCatch(return(expr), name, parentenv, handler) 33: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 34: tryCatchList(expr, classes, parentenv, handlers) 35: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL}) 36: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)) 37: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, shuffle = shuffle, error_call = error_call) 38: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle) 39: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed") 40: test_check("pdSpecEst") An irrecoverable exception occurred. R is aborting now ... Flavor: r-devel-macos-arm64

Version: 1.2.6
Check: re-building of vignette outputs
Result: ERROR Error(s) in re-building vignettes: sh: line 1: 32217 Segmentation fault: 11 '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla --no-echo > '/Volumes/Temp/tmp/RtmpKxkCFE/file7d2141fc18ae' 2>&1 < '/Volumes/Temp/tmp/RtmpKxkCFE/file7d21db8695a' --- re-building ‘depth_ranktests.Rmd’ using rmarkdown *** caught segfault *** address 0x0, cause 'invalid permissions' Traceback: 1: Expm(diag(2), H.coeff(0.5 * rnorm(4), inverse = T)) 2: FUN(X[[i]], ...) 3: lapply(X = X, FUN = FUN, ...) 4: sapply(integer(n), eval.parent(substitute(function(...) expr)), simplify = simplify) 5: replicate(50, Expm(diag(2), H.coeff(0.5 * rnorm(4), inverse = T))) 6: eval(expr, envir) 7: eval(expr, envir) 8: withVisible(eval(expr, envir)) 9: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)}) 10: eval(call) 11: eval(call) 12: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers) 13: doWithOneRestart(return(expr), restart) 14: withOneRestart(expr, restarts[[1L]]) 15: withRestartList(expr, restarts[-nr]) 16: doWithOneRestart(return(expr), restart) 17: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]]) 18: withRestartList(expr, restarts) 19: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE) 20: evaluate::evaluate(...) 21: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)) 22: in_dir(input_dir(), expr) 23: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))) 24: eng_r(options) 25: block_exec(params) 26: call_block(x) 27: process_group(group) 28: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }) 29: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())) 30: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc) 31: process_file(text, output) 32: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet) 33: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...) 34: vweave_rmarkdown(...) 35: engine$weave(file, quiet = quiet, encoding = enc) 36: doTryCatch(return(expr), name, parentenv, handler) 37: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 38: tryCatchList(expr, classes, parentenv, handlers) 39: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))}) 40: tools:::.buildOneVignette("depth_ranktests.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/pdSpecEst.Rcheck/vign_test/pdSpecEst", TRUE, FALSE, "depth_ranktests", "UTF-8", "/Volumes/Temp/tmp/RtmpKxkCFE/file7d212c2734cf.rds") An irrecoverable exception occurred. R is aborting now ... sh: line 1: 32399 Segmentation fault: 11 '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla --no-echo > '/Volumes/Temp/tmp/RtmpKxkCFE/file7d2165839586' 2>&1 < '/Volumes/Temp/tmp/RtmpKxkCFE/file7d2121cdc47b' --- re-building ‘wavelet_est_clust.Rmd’ using rmarkdown *** caught segfault *** address 0xfe000000786564, cause 'invalid permissions' Traceback: 1: Expm(diag(3), (1 - 0.4 * t) * H.coeff(sqrt(t * (1 - t) + 1) * sin(pi/(0.4 * t + 0.1)) * (1 + Bumps), inverse = TRUE)) 2: FUN(X[[i]], ...) 3: lapply(X = X, FUN = FUN, ...) 4: sapply(x, function(t) { Expm(diag(3), (1 - 0.4 * t) * H.coeff(sqrt(t * (1 - t) + 1) * sin(pi/(0.4 * t + 0.1)) * (1 + Bumps), inverse = TRUE))}, simplify = "array") 5: rExamples1D(n, example = "bumps", return.ts = T, noise = "periodogram") 6: eval(expr, envir) 7: eval(expr, envir) 8: withVisible(eval(expr, envir)) 9: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)}) 10: eval(call) 11: eval(call) 12: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers) 13: doWithOneRestart(return(expr), restart) 14: withOneRestart(expr, restarts[[1L]]) 15: withRestartList(expr, restarts[-nr]) 16: doWithOneRestart(return(expr), restart) 17: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]]) 18: withRestartList(expr, restarts) 19: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE) 20: evaluate::evaluate(...) 21: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)) 22: in_dir(input_dir(), expr) 23: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))) 24: eng_r(options) 25: block_exec(params) 26: call_block(x) 27: process_group(group) 28: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }) 29: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())) 30: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc) 31: process_file(text, output) 32: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet) 33: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...) 34: vweave_rmarkdown(...) 35: engine$weave(file, quiet = quiet, encoding = enc) 36: doTryCatch(return(expr), name, parentenv, handler) 37: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 38: tryCatchList(expr, classes, parentenv, handlers) 39: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))}) 40: tools:::.buildOneVignette("wavelet_est_clust.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/pdSpecEst.Rcheck/vign_test/pdSpecEst", TRUE, FALSE, "wavelet_est_clust", "UTF-8", "/Volumes/Temp/tmp/RtmpKxkCFE/file7d21460c9abf.rds") An irrecoverable exception occurred. R is aborting now ... SUMMARY: processing the following files failed: ‘depth_ranktests.Rmd’ ‘wavelet_est_clust.Rmd’ Error: Vignette re-building failed. Execution halted Flavor: r-devel-macos-arm64

Version: 1.2.6
Check: installed package size
Result: NOTE installed size is 7.3Mb sub-directories of 1Mb or more: libs 6.4Mb Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64

Package rrapply

Current CRAN status: OK: 14

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.