Last updated on 2026-02-15 13:53:05 CET.
| Package | ERROR | NOTE | OK |
|---|---|---|---|
| Bessel | 14 | ||
| bitops | 14 | ||
| CLA | 14 | ||
| classGraph | 14 | ||
| cluster | 14 | ||
| cobs | 14 | ||
| copula | 5 | 9 | |
| diptest | 14 | ||
| DPQ | 14 | ||
| DPQmpfr | 14 | ||
| expm | 14 | ||
| fracdiff | 14 | ||
| lokern | 14 | ||
| longmemo | 14 | ||
| lpridge | 14 | ||
| nor1mix | 1 | 13 | |
| plugdensity | 2 | 12 | |
| Rmpfr | 14 | ||
| robustbase | 14 | ||
| robustX | 5 | 9 | |
| round | 14 | ||
| sca | 2 | 12 | |
| sfsmisc | 14 | ||
| simest | 3 | 11 | |
| stabledist | 14 | ||
| supclust | 2 | 12 | |
| VLMC | 14 |
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: NOTE: 5, OK: 9
Version: 1.1-6
Check: relative paths in package URLs
Result: NOTE
Found the following (possibly) invalid URL:
URL: ../doc/Frank-Rmpfr
From: man/copula-package.Rd
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc
Version: 1.1-6
Check: installed package size
Result: NOTE
installed size is 7.8Mb
sub-directories of 1Mb or more:
R 2.4Mb
doc 3.2Mb
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64
Version: 1.1-6
Flags: --no-vignettes
Check: installed package size
Result: NOTE
installed size is 7.3Mb
sub-directories of 1Mb or more:
R 2.1Mb
doc 3.2Mb
Flavor: r-oldrel-windows-x86_64
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: ERROR: 1, OK: 13
Version: 1.3-3
Check: tests
Result: ERROR
Running ‘MW.R’ [0s/0s]
Comparing ‘MW.Rout’ to ‘MW.Rout.save’ ... OK
Running ‘par.R’ [0s/0s]
Running ‘qnorMix-ex.R’ [0s/0s]
Running the tests in ‘tests/qnorMix-ex.R’ failed.
Complete output:
> ## Marron Wand examples are defined as norMix() calls in ../R/zMarrWand-dens.R
> library("nor1mix")
>
> ii <- c(32, 39, 40, 40, 48, 48, 49, 56, 57, 58, 65)
> pp <- 0.486 + ii / 100000 # very constrained set
>
> e <- norMix(mu = c(-0.825,0.275), sigma = sqrt(0.773), w = c(1, 3)/4)
>
> qnorMix(pp, e, trace = TRUE)
1: relE =2.995e-14
[1] -0.007781385 -0.007605111 -0.007579910 -0.007579910 -0.007378307
[6] -0.007378307 -0.007353107 -0.007176708 -0.007151508 -0.007126309
[11] -0.006949786
> ## failed for version <= 1.0-5
>
> q.pp <- -c(7.78151762922529, 7.60511100150266, 7.57991031275271, 7.57991031275271,
+ 7.37830712226037, 7.37830712226037, 7.35310701314534, 7.17670804948685,
+ 7.15150845450588, 7.12630892371882, 6.94991400429199) / 1000
>
> for (m in eval(formals(qnorMix)$method)) {
+ cat("method ", m,":")
+ stopifnot(all.equal(q.pp, qnorMix(pp, e, method = m, tol = 1e-14),
+ tol = 1e-13),# 1.022e-14 (32-bit)
+ abs(qnorMix(rep(1/2, 8), MW.nm10, method = m)) < 1e-14
+ )
+ cat("\n")
+ }
method interpQspline :
method interpspline :
method eachRoot :
method root2 :
>
> ### a "nasty" example (for the newton steps):
> ip <- c(0, 1e-11, 3.33e-09, 7.705488e-05, 0.0001670041, 0.00125378934,
+ 0.00141169953, 0.00357409109, 0.00644073795, 0.00853238955, 0.01361442421,
+ 0.01672761627, 0.02067755849, 0.02124092026, 0.03327537558, 0.03527226553,
+ 0.05365983941, 0.05482289811, 0.05669602608, 0.05982167629)
> qv <- qnorMix(1-ip, MW.nm12, trace=1)
,,1: relE =0.003125
2: relE =0.0005494
3: relE =7.656e-05
> ## now ok
>
> ### --- lower.tail=FALSE did not work correctly at some point
> qv. <- qnorMix(ip, MW.nm12, lower.tail=FALSE, trace=1)#2, maxiter=50)
,,1: relE =0.003125
2: relE =0.0005494
3: relE =7.656e-05
> stopifnot(all.equal(qv, qv., tol = 1e-5))
>
> ## qnorMix(*, log.p=TRUE) currently warns about missing Newton step implementation
> qnorMixLog <- function(p, obj, lower.tail = TRUE, ...)
+ suppressWarnings(qnorMix(p, obj, lower.tail=lower.tail, log.p=TRUE, ...))
> ##
> n2 <- 8
> set.seed(11)
> for(i in 1:50) {
+ cat(i, "", if(i %% 20 == 0)"\n")
+ u0 <- c(0,sort(runif(n2)),1)
+ q0 <- qnorMix(u0, MW.nm2, trace=0, tol=4e-16)
+ qL <- qnorMix(1-u0, MW.nm2, lower.tail=FALSE, trace=0, tol=4e-16)
+ stopifnot(all.equal(pnorMix(q0, MW.nm2), u0, tol=1e-15),
+ all.equal(q0, qL, tol=1e-14))
+ i. <- 2:(n2+1); u0. <- u0[i.]
+ ## --- log.p= TRUE [no Newton steps]
+ q0. <- qnorMixLog(log ( u0.), MW.nm2, tol=4e-16)
+ qL. <- qnorMixLog(log1p(-u0.), MW.nm2, lower.tail=FALSE, tol=4e-16)
+ stopifnot(all.equal(pnorMix(q0, MW.nm2), u0, tol=1e-15),
+ all.equal(q0, qL, tol=1e-14),
+ all.equal(q0., qL., tol=1e-10),
+ all.equal(q0[i.], q0., tol = 6e-6)# no Newton => less accuracy
+ )
+ }; cat("\n")
1 Error: q0 and qL are not equal:
Mean relative difference: 1.037164e-14
Execution halted
Flavor: r-devel-macos-arm64
Current CRAN status: NOTE: 2, OK: 12
Version: 0.8-5
Check: CRAN incoming feasibility
Result: NOTE
Maintainer: ‘Martin Maechler <maechler@stat.math.ethz.ch>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: c(person(given = c("Eva", "Herrmann;", "R", "interface", "etc", "by", "Martin"),
family = "Maechler",
role = "aut",
email = "eherrmann@mathematik.tu-darmstadt.de",
comment = "C original"),
person(given = "Martin",
family = "Maechler",
role = "cre",
email = "maechler@stat.math.ethz.ch"))
as necessary.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: ERROR: 5, OK: 9
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’ [1s/2s]
Running ‘cov-ex.R’ [1s/1s]
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-11 r89406)
Platform: x86_64-pc-linux-gnu
Running under: Debian GNU/Linux forky/sid
Matrix products: default
BLAS: /home/hornik/tmp/R.check/r-devel-clang/Work/build/lib/libRblas.so
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0
locale:
[1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
[4] LC_COLLATE=C LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
[7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/Vienna
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-12 10:40:13 UTC; unix
-- File: /home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/home/hornik/tmp/R.check/r-devel-clang/Work/build"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.174 0.015 0.189
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.088 0.000 0.169
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-debian-clang
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’ [1s/2s]
Running ‘cov-ex.R’ [1s/1s]
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-13 r89414)
Platform: x86_64-pc-linux-gnu
Running under: Debian GNU/Linux forky/sid
Matrix products: default
BLAS: /home/hornik/tmp/R.check/r-devel-gcc/Work/build/lib/libRblas.so
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0
locale:
[1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
[4] LC_COLLATE=C LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
[7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/Vienna
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-14 09:57:55 UTC; unix
-- File: /home/hornik/tmp/R.check/r-devel-gcc/Work/build/Packages/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/home/hornik/tmp/R.check/r-devel-gcc/Work/build"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.082 0.025 0.154
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.049 0.000 0.060
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’
Running ‘cov-ex.R’
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-04 r89376)
Platform: x86_64-pc-linux-gnu
Running under: Fedora Linux 42 (Workstation Edition)
Matrix products: default
BLAS: /data/gannet/ripley/R/R-clang/lib/libRblas.so
LAPACK: /data/gannet/ripley/R/R-clang/lib/libRlapack.so; LAPACK version 3.12.1
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=C
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/London
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-05 19:29:48 UTC; unix
-- File: /data/gannet/ripley/R/packages/tests-clang/robustX.Rcheck/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/data/gannet/ripley/R/R-clang"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.342 0.099 1.223
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.181 0.002 2.148
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 1.2-7
Check: tests
Result: ERROR
Running ‘L1med-tst.R’
Running ‘cov-ex.R’
Running the tests in ‘tests/cov-ex.R’ failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-07 r89380)
Platform: x86_64-pc-linux-gnu
Running under: Fedora Linux 42 (Workstation Edition)
Matrix products: default
BLAS: /data/gannet/ripley/R/R-devel/lib/libRblas.so
LAPACK: /usr/lib64/liblapack.so.3.12.0 LAPACK version 3.12.0
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=C
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/London
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-09 21:10:39 UTC; unix
-- File: /data/gannet/ripley/R/packages/tests-devel/robustX.Rcheck/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "/data/gannet/ripley/R/R-devel"
[1] TRUE
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.289 0.022 0.315
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.136 0.000 0.138
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 1.2-7
Check: tests
Result: ERROR
Running 'L1med-tst.R' [1s]
Running 'cov-ex.R' [1s]
Running the tests in 'tests/cov-ex.R' failed.
Complete output:
> library(robustX)
> library(robustbase)
> (newRB <- (packageVersion("robustbase") >= "0.99"))
[1] TRUE
>
> sessionInfo()
R Under development (unstable) (2026-02-13 r89414 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] robustbase_0.99-7 robustX_1.2-7
loaded via a namespace (and not attached):
[1] DEoptimR_1.1-4 compiler_4.6.0
> packageDescription("robustX")
Package: robustX
Type: Package
Title: 'eXtra' / 'eXperimental' Functionality for Robust Statistics
Version: 1.2-7
Date: 2023-06-14
Authors@R: c(person("Martin","Maechler", role=c("aut","cre"),
email="maechler@stat.math.ethz.ch", comment = c(ORCID =
"0000-0002-8685-9910")) , person("Werner A.", "Stahel",
role="aut", email="stahel@stat.math.ethz.ch") , person("Rolf",
"Turner", role="ctb", email="r.turner@auckland.ac.nz", comment
= "reclas()") , person("Ueli", "Oetliker", role="ctb", comment
= "original version of BACON() and mvBACON for S+") ,
person("Tobias", "Schoch", role="ctb", comment =
"init.sel=\"V2\" for BACON; fix alpha") )
Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
Description: Robustness -- 'eXperimental', 'eXtraneous', or
'eXtraordinary' Functionality for Robust Statistics. Hence
methods which are not well established, often related to
methods in package 'robustbase'. Amazingly, 'BACON()',
originally by Billor, Hadi, and Velleman (2000)
<doi:10.1016/S0167-9473(99)00101-2> has become established in
places. The "barrow wheel" `rbwheel()` is from Stahel and
Mächler (2009) <doi:10.1111/j.1467-9868.2009.00706.x>.
Imports: grDevices, graphics, stats, utils, robustbase (>= 0.92-3)
Suggests: MASS, lattice, pcaPP
Enhances: ICS
License: GPL (>= 2)
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2023-06-14 21:41:58 UTC; maechler
Author: Martin Maechler [aut, cre]
(<https://orcid.org/0000-0002-8685-9910>), Werner A. Stahel
[aut], Rolf Turner [ctb] (reclas()), Ueli Oetliker [ctb]
(original version of BACON() and mvBACON for S+), Tobias Schoch
[ctb] (init.sel="V2" for BACON; fix alpha)
Repository: CRAN
Date/Publication: 2023-06-16 07:30:02 UTC
Built: R 4.6.0; ; 2026-02-14 02:19:01 UTC; windows
-- File: D:/RCompile/CRANpkg/lib/4.6/robustX/Meta/package.rds
> (ourBLAS <- grepl(print(normalizePath(R.home())),
+ normalizePath(extSoftVersion()[["BLAS"]]), fixed = TRUE))
[1] "D:\\RCompile\\recent\\R"
[1] FALSE
Warning message:
In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="": Das System kann den angegebenen Pfad nicht finden
> ## need extended precision (typically *includes* 64-bit):
> doCheck <- (.Machine$sizeof.longdouble >= 16)
> cat("doCheck (= have long double):", doCheck,"\n")
doCheck (= have long double): TRUE
>
> if(!dev.interactive(orNone=TRUE)) pdf("cov-ex.pdf")
>
> covNN.1 <- robustX:::covNNC1 ## the original definition (2003)
>
> data(iris)
> system.time(cN1 <- covNN.1(iris[-5]))
user system elapsed
0.14 0.00 0.14
> system.time(cN <- covNNC (iris[-5]))# faster indeed
user system elapsed
0.06 0.01 0.08
>
> ## report.and.stop.if.not.all.equal
> report.stopifnot.all.eq <- function(a,b, tol, ...) {
+ call <- sys.call()
+ ae <- all.equal(a,b, tol=tol, ...)
+ call[[1]] <- quote(all.equal)
+ if(!isTRUE(ae))
+ stop(sprintf("Not %s:\n%s\n\n", deparse(call),
+ paste(ae, collapse="\n")),
+ call.=FALSE)
+ ## else
+ TRUE
+ }
>
> UN <- function(L) lapply(L, unname)
>
> chk.NN.new.old <- function(cNew, cNold, tol = 2e-15, tol.1 = 20*tol) {
+ stopifnot(is.list(cNold$innc), length(n.i <- names(cNold$innc)) == 4)
+ cat("classification accordance matrix:\n")
+ print(table(new = cNew $classification,
+ old = cNold$classification))
+ report.stopifnot.all.eq(UN(cNew [1:4]),
+ UN(cNold[1:4]), tol=tol.1) &
+ report.stopifnot.all.eq(cNew $innc[n.i],
+ cNold$innc[n.i], tol=tol)
+ }
>
> summ.NN <- function(cNN, digits = 3) {
+ cbind(class = cNN$classification,
+ pprob = round(cNN$postprob, digits),
+ incc.p= round(cNN$innc$postprob, digits))
+ }
>
> s1 <- summ.NN(cN1)
> ss <- summ.NN(cN)
> if(isTRUE(all.equal(ss, s1))) ss else cbind(ss, s1)
class pprob incc.p class pprob incc.p
[1,] 1 1.000 1.000 1 1.000 1.000
[2,] 1 1.000 1.000 1 1.000 1.000
[3,] 1 1.000 1.000 1 1.000 1.000
[4,] 1 1.000 1.000 1 1.000 1.000
[5,] 1 1.000 1.000 1 1.000 1.000
[6,] 1 1.000 0.171 1 1.000 0.171
[7,] 1 1.000 1.000 1 1.000 1.000
[8,] 1 1.000 1.000 1 1.000 1.000
[9,] 1 1.000 1.000 1 1.000 1.000
[10,] 1 1.000 1.000 1 1.000 1.000
[11,] 1 1.000 1.000 1 1.000 1.000
[12,] 1 1.000 1.000 1 1.000 1.000
[13,] 1 1.000 1.000 1 1.000 1.000
[14,] 1 1.000 1.000 1 1.000 1.000
[15,] 1 1.000 0.000 1 0.998 0.000
[16,] 0 0.000 0.000 0 0.000 0.000
[17,] 1 1.000 0.718 1 1.000 0.718
[18,] 1 1.000 1.000 1 1.000 1.000
[19,] 1 1.000 0.002 1 1.000 0.002
[20,] 1 1.000 1.000 1 1.000 1.000
[21,] 1 1.000 1.000 1 1.000 1.000
[22,] 1 1.000 1.000 1 1.000 1.000
[23,] 1 1.000 1.000 1 1.000 1.000
[24,] 1 1.000 1.000 1 1.000 1.000
[25,] 1 1.000 1.000 1 1.000 1.000
[26,] 1 1.000 1.000 1 1.000 1.000
[27,] 1 1.000 1.000 1 1.000 1.000
[28,] 1 1.000 1.000 1 1.000 1.000
[29,] 1 1.000 1.000 1 1.000 1.000
[30,] 1 1.000 1.000 1 1.000 1.000
[31,] 1 1.000 1.000 1 1.000 1.000
[32,] 1 1.000 1.000 1 1.000 1.000
[33,] 1 1.000 0.000 1 1.000 0.000
[34,] 0 0.000 0.000 0 0.000 0.000
[35,] 1 1.000 1.000 1 1.000 1.000
[36,] 1 1.000 1.000 1 1.000 1.000
[37,] 1 1.000 1.000 1 1.000 1.000
[38,] 1 1.000 1.000 1 1.000 1.000
[39,] 1 1.000 1.000 1 1.000 1.000
[40,] 1 1.000 1.000 1 1.000 1.000
[41,] 1 1.000 1.000 1 1.000 1.000
[42,] 0 0.000 0.000 0 0.000 0.000
[43,] 1 1.000 1.000 1 1.000 1.000
[44,] 1 1.000 1.000 1 1.000 1.000
[45,] 1 1.000 1.000 1 1.000 1.000
[46,] 1 1.000 1.000 1 1.000 1.000
[47,] 1 1.000 1.000 1 1.000 1.000
[48,] 1 1.000 1.000 1 1.000 1.000
[49,] 1 1.000 1.000 1 1.000 1.000
[50,] 1 1.000 1.000 1 1.000 1.000
[51,] 1 1.000 0.058 1 1.000 0.058
[52,] 1 1.000 1.000 1 1.000 1.000
[53,] 1 1.000 1.000 1 1.000 1.000
[54,] 1 1.000 0.773 1 1.000 0.773
[55,] 1 1.000 1.000 1 1.000 1.000
[56,] 1 1.000 1.000 1 1.000 1.000
[57,] 1 1.000 0.999 1 1.000 0.999
[58,] 1 1.000 0.000 1 1.000 0.000
[59,] 1 1.000 1.000 1 1.000 1.000
[60,] 1 1.000 1.000 1 1.000 1.000
[61,] 0 0.000 0.000 0 0.000 0.000
[62,] 1 1.000 1.000 1 1.000 1.000
[63,] 1 0.611 0.000 0 0.000 0.000
[64,] 1 1.000 1.000 1 1.000 1.000
[65,] 1 1.000 1.000 1 1.000 1.000
[66,] 1 1.000 1.000 1 1.000 1.000
[67,] 1 1.000 1.000 1 1.000 1.000
[68,] 1 1.000 1.000 1 1.000 1.000
[69,] 1 0.786 0.000 0 0.000 0.000
[70,] 1 1.000 1.000 1 1.000 1.000
[71,] 1 1.000 1.000 1 1.000 1.000
[72,] 1 1.000 1.000 1 1.000 1.000
[73,] 1 1.000 1.000 1 1.000 1.000
[74,] 1 1.000 1.000 1 1.000 1.000
[75,] 1 1.000 1.000 1 1.000 1.000
[76,] 1 1.000 1.000 1 1.000 1.000
[77,] 1 1.000 1.000 1 1.000 1.000
[78,] 1 1.000 1.000 1 1.000 1.000
[79,] 1 1.000 1.000 1 1.000 1.000
[80,] 1 1.000 1.000 1 1.000 1.000
[81,] 1 1.000 1.000 1 1.000 1.000
[82,] 1 1.000 0.999 1 1.000 0.999
[83,] 1 1.000 1.000 1 1.000 1.000
[84,] 1 1.000 1.000 1 1.000 1.000
[85,] 1 1.000 1.000 1 1.000 1.000
[86,] 1 1.000 0.000 1 1.000 0.000
[87,] 1 1.000 1.000 1 1.000 1.000
[88,] 1 1.000 0.000 1 1.000 0.000
[89,] 1 1.000 1.000 1 1.000 1.000
[90,] 1 1.000 1.000 1 1.000 1.000
[91,] 1 1.000 1.000 1 1.000 1.000
[92,] 1 1.000 1.000 1 1.000 1.000
[93,] 1 1.000 1.000 1 1.000 1.000
[94,] 1 0.944 0.000 0 0.001 0.000
[95,] 1 1.000 1.000 1 1.000 1.000
[96,] 1 1.000 1.000 1 1.000 1.000
[97,] 1 1.000 1.000 1 1.000 1.000
[98,] 1 1.000 1.000 1 1.000 1.000
[99,] 1 1.000 0.000 1 1.000 0.000
[100,] 1 1.000 1.000 1 1.000 1.000
[101,] 1 1.000 0.000 1 1.000 0.000
[102,] 1 1.000 1.000 1 1.000 1.000
[103,] 1 1.000 1.000 1 1.000 1.000
[104,] 1 1.000 1.000 1 1.000 1.000
[105,] 1 1.000 1.000 1 1.000 1.000
[106,] 1 1.000 0.000 1 0.998 0.000
[107,] 1 1.000 0.000 0 0.317 0.000
[108,] 1 1.000 0.000 1 1.000 0.000
[109,] 1 1.000 0.000 1 0.999 0.000
[110,] 0 0.000 0.000 0 0.000 0.000
[111,] 1 1.000 1.000 1 1.000 1.000
[112,] 1 1.000 1.000 1 1.000 1.000
[113,] 1 1.000 1.000 1 1.000 1.000
[114,] 1 1.000 0.000 1 1.000 0.000
[115,] 1 1.000 0.899 1 1.000 0.899
[116,] 1 1.000 1.000 1 1.000 1.000
[117,] 1 1.000 1.000 1 1.000 1.000
[118,] 0 0.000 0.000 0 0.000 0.000
[119,] 0 0.000 0.000 0 0.000 0.000
[120,] 0 0.028 0.000 0 0.000 0.000
[121,] 1 1.000 1.000 1 1.000 1.000
[122,] 1 1.000 1.000 1 1.000 1.000
[123,] 0 0.000 0.000 0 0.000 0.000
[124,] 1 1.000 1.000 1 1.000 1.000
[125,] 1 1.000 1.000 1 1.000 1.000
[126,] 1 1.000 0.229 1 1.000 0.229
[127,] 1 1.000 1.000 1 1.000 1.000
[128,] 1 1.000 1.000 1 1.000 1.000
[129,] 1 1.000 1.000 1 1.000 1.000
[130,] 1 1.000 0.702 1 1.000 0.702
[131,] 1 1.000 0.000 0 0.357 0.000
[132,] 0 0.000 0.000 0 0.000 0.000
[133,] 1 1.000 1.000 1 1.000 1.000
[134,] 1 1.000 1.000 1 1.000 1.000
[135,] 1 1.000 0.818 1 1.000 0.818
[136,] 1 1.000 0.000 1 0.999 0.000
[137,] 1 1.000 0.000 1 1.000 0.000
[138,] 1 1.000 1.000 1 1.000 1.000
[139,] 1 1.000 1.000 1 1.000 1.000
[140,] 1 1.000 1.000 1 1.000 1.000
[141,] 1 1.000 1.000 1 1.000 1.000
[142,] 1 1.000 1.000 1 1.000 1.000
[143,] 1 1.000 1.000 1 1.000 1.000
[144,] 1 1.000 1.000 1 1.000 1.000
[145,] 1 1.000 1.000 1 1.000 1.000
[146,] 1 1.000 1.000 1 1.000 1.000
[147,] 1 1.000 0.991 1 1.000 0.991
[148,] 1 1.000 1.000 1 1.000 1.000
[149,] 1 1.000 0.000 1 1.000 0.000
[150,] 1 1.000 1.000 1 1.000 1.000
>
>
> try( # testing (tol=0 too small)
+ chk.NN.new.old(cN, cN1, tol=0)
+ )
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error : Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
> ## This used to fail when we use R's instead of BLAS matrix products:
> if(doCheck)
+ chk.NN.new.old(cN, cN1, tol = 4e-15) # seen 1.1e-15 work
classification accordance matrix:
old
new 0 1
0 10 0
1 5 135
Error: Not all.equal(UN(cNew[1:4]), UN(cNold[1:4]), tol = tol.1):
Component "cov": Mean relative difference: 0.01479474
Component "mu": Mean relative difference: 0.003191909
Component "postprob": Mean relative difference: 0.1351993
Component "classification": Mean relative difference: 1
Execution halted
Flavor: r-devel-windows-x86_64
Current CRAN status: OK: 14
Current CRAN status: NOTE: 2, OK: 12
Version: 0.9-2
Check: CRAN incoming feasibility
Result: NOTE
Maintainer: ‘Martin Maechler <maechler@stat.math.ethz.ch>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: c(person(given = "Valentin",
family = "Rousson",
role = "aut",
email = "rousson@ifspm.unizh.ch"),
person(given = "Martin",
family = "Maechler",
role = c("aut", "cre"),
email = "maechler@stat.math.ethz.ch"))
as necessary.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc
Current CRAN status: OK: 14
Current CRAN status: ERROR: 3, OK: 11
Version: 0.4-1-1
Check: tests
Result: ERROR
Running ‘ex_cvx.R’ [26s/26s]
Running ‘fastmerge-ex.R’ [1s/1s]
Running ‘smooth.pen_agcv.R’ [1s/1s]
Running the tests in ‘tests/smooth.pen_agcv.R’ failed.
Complete output:
> library(simest)
>
> ## Test smooth.pen.reg(*, agcv=TRUE) ---------------
>
> ## -- Using a subset of R's sunspots data ------
> osV <- abbreviate(gsub("[^[:alnum:]]", '', sub("\\(.*", '', osVersion)), 12)
>
> if(!dev.interactive(TRUE)) pdf(paste0("smooth.pen_sunsp__", osV, ".pdf"), width = 9, height=5)
>
> str(ssp <- window(sunspot.m2014, start = 1900))
Error: object 'sunspot.m2014' not found
Execution halted
Flavor: r-oldrel-macos-arm64
Version: 0.4-1-1
Check: tests
Result: ERROR
Running ‘ex_cvx.R’ [55s/110s]
Running ‘fastmerge-ex.R’ [4s/7s]
Running ‘smooth.pen_agcv.R’ [2s/3s]
Running the tests in ‘tests/smooth.pen_agcv.R’ failed.
Complete output:
> library(simest)
>
> ## Test smooth.pen.reg(*, agcv=TRUE) ---------------
>
> ## -- Using a subset of R's sunspots data ------
> osV <- abbreviate(gsub("[^[:alnum:]]", '', sub("\\(.*", '', osVersion)), 12)
>
> if(!dev.interactive(TRUE)) pdf(paste0("smooth.pen_sunsp__", osV, ".pdf"), width = 9, height=5)
>
> str(ssp <- window(sunspot.m2014, start = 1900))
Error: object 'sunspot.m2014' not found
Execution halted
Flavor: r-oldrel-macos-x86_64
Version: 0.4-1-1
Check: tests
Result: ERROR
Running 'ex_cvx.R' [88s]
Running 'fastmerge-ex.R' [7s]
Running 'smooth.pen_agcv.R' [3s]
Running the tests in 'tests/smooth.pen_agcv.R' failed.
Complete output:
> library(simest)
>
> ## Test smooth.pen.reg(*, agcv=TRUE) ---------------
>
> ## -- Using a subset of R's sunspots data ------
> osV <- abbreviate(gsub("[^[:alnum:]]", '', sub("\\(.*", '', osVersion)), 12)
>
> if(!dev.interactive(TRUE)) pdf(paste0("smooth.pen_sunsp__", osV, ".pdf"), width = 9, height=5)
>
> str(ssp <- window(sunspot.m2014, start = 1900))
Error: object 'sunspot.m2014' not found
Execution halted
Flavor: r-oldrel-windows-x86_64
Current CRAN status: OK: 14
Current CRAN status: NOTE: 2, OK: 12
Version: 1.1-1
Check: CRAN incoming feasibility
Result: NOTE
Maintainer: ‘Martin Maechler <maechler@stat.math.ethz.ch>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: c(person(given = "Marcel",
family = "Dettling",
role = "aut",
email = "marcel.dettling@zhaw.ch"),
person(given = "Martin",
family = "Maechler",
role = c("aut", "cre"),
email = "maechler@stat.math.ethz.ch"))
as necessary.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc
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.