R Under development (unstable) (2025-07-22 r88445 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > #### Test that wrong combinations of varlist / doOne give *good* error messages > #### > require(simsalapar) Loading required package: simsalapar > source(system.file("xtraR/assertErr-etc.R", package="simsalapar", mustWork=TRUE)) > ## Want English error/warning messages {works at least on Linux}: > Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") [1] "" Warning message: In Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") : LC_MESSAGES does not exist on Windows > > ## Must be fast, rather than "interesting": > > # Implement the variable list using the funciton varlist > varSmini <- varlist( + n.sim = list(type="N", expr=quote(N[sim]), value = 3),# 3: "minimal" + n = list(type="grid", value=c(100,150)), + # numbers of predictors + p = list(value = 64), + s0 = list(type="grid", value=c(3,15)), + # number of replications (to compute single datapoint) + N = list(type="frozen", value=50), + # test level alpha MAYBE ALPHA WITH TYPE INNER? + alpha = list(type="grid", value=c(0.05, 0.01)), # goal: inner + # fraction of data used for variable screening in Multi Sample Split Method + fraction = list(type="grid", expr=quote(mu), value=seq(4, 7, by = 0.5)/10), + # number of sample splits in the MSS algorithm + B = list(type="frozen", value=100), + # the model selector in the MSS algorithm + model.selector = list(type="frozen", value="lasso.cv") + ) > > varSmin.1 <- set.n.sim(varSmini, NULL) # No 'n.sim' > > ## apart from varlist, also has 'DBG' and '...' > do1.Dd <- function(n, p, s0, N, alpha, B, fraction, + model.selector, DBG=FALSE, ...) + { + stopifnot(s0 <= p) + ## construct the design matrix x and the coeff. vector beta + ds <- list(x = matrix(rt(n*p, df=3), n,p), + beta = c(rlnorm(s0), rep(0, p-s0))) + x <- ds$x + beta <- ds$beta + if(DBG) { cat("generate..(): --> (x,beta) \n"); str(ds) } + # check if beta is of the right form + stopifnot(any(beta[(s0+1):p] == 0)) + + if(DBG) { + cat(sprintf(" .. N=%d, alpha=%g, B=%d, fraction=%g, model.sel.='%s'\n", + N,alpha,B, fraction, model.selector)) + dots <- list(...) + if(length(list(...))) + cat(sprintf(" dots [len. %d]:\n", length(list(...)), deparse(substitute(...)))) + else cat(" '...' is empty\n") + } + FWER <- rbinom( 1, size= 1, prob = 0.1) + power <- rbinom(s0, size= N, prob = 0.9)/N + ## initiate the coverage matrix + coverage.matrix <- matrix(NA, nrow=ncol(x), ncol=N) + for (i in 1:ncol(x)){ + for (j in 1:N){ + coverage.matrix[i,j] <- (rbinom(1, 10, pr = 0.2) <= 1 & + rbinom(1, 10, pr = 0.2) <= 3) + } + } + # calculate coverage rate for each predictor variable 1,..,p + coverage <- apply(coverage.matrix, 1, mean) + # return FWER, power, power.average and coverage + c("FWER" = FWER, "power" = power, "coverage" = coverage) + } ## {do1.Dd} > > do1.D <- do1.Dd; formals(do1.D) <- head(formals(do1.Dd), -1) > stopifnot(identical(body(do1.D), body(do1.Dd)), + is.character(print(all.equal(do1.D, do1.Dd)))) [1] "target, current do not match when deparsed" > ##-> do1.D () has 'DBG' but *no* '... > > > ## MM: before doLapply() use doCheck() for a preliminary check: > set.seed(11); cc <- doCheck(do1.Dd, vList = varSmini , n = 1) j = 34: -> length(r) = 68 dim(r):NULL str(dimnames(r)): NULL > set.seed(11); c1 <- doCheck(do1.Dd, vList = varSmin.1, n = 1) j = 34: -> length(r) = 68 dim(r):NULL str(dimnames(r)): NULL > stopifnot(is.numeric(cc), !anyNA(cc), + identical(c1, cc)) > set.seed(12); cc. <- doCheck(do1.D, vList = varSmini , n = 1) j = 2: -> length(r) = 68 dim(r):NULL str(dimnames(r)): NULL > set.seed(12); c1. <- doCheck(do1.D, vList = varSmin.1, n = 1) j = 2: -> length(r) = 68 dim(r):NULL str(dimnames(r)): NULL > stopifnot(is.numeric(cc.), !anyNA(cc.), + identical(c1., cc.)) > > > options(warn = 2)#--> warnings give errors > system.time( + res1 <- doLapply(varSmin.1, DBG=TRUE, sfile=NULL,#"res_MSS_mini_5.rds", + check = FALSE, # <- no check now, did above .. + doOne = do1.Dd) + ) generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' '...' is empty user system elapsed 0.98 0.07 1.05 > system.time( + resN <- doClusterApply(varSmini, cluster = parallel::makeCluster(2, "PSOCK"), + sfile=NULL, check=FALSE, doOne = do1.Dd) + ) user system elapsed 3.03 1.34 5.39 > > ## do1.D() instead of do1.Dd(): > system.time( + res1. <- doLapply(varSmin.1, DBG=TRUE, sfile=NULL, + check = FALSE, doOne = do1.D) + ) generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.4, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.45, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.5, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.55, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.6, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.65, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.05, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 0 0 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:100, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 0.279 0.376 1.064 0.611 0.153 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' generate..(): --> (x,beta) List of 2 $ x : num [1:150, 1:64] -0.703 -0.569 0.684 -0.362 -0.213 ... $ beta: num [1:64] 1.362 2.21 0.289 7.437 1.49 ... .. N=50, alpha=0.01, B=100, fraction=0.7, model.sel.='lasso.cv' user system elapsed 0.21 0.00 0.20 > system.time( + resN. <- doClusterApply(varSmini, cluster = parallel::makeCluster(2, "PSOCK"), + sfile=NULL, check=FALSE, doOne = do1.D) + ) user system elapsed 2.83 1.12 5.05 > > stopifnot( + identical(dim(resN), + c(n = 2L, s0 = 2L, alpha = 2L, fraction = 7L, n.sim = 3L)) + , + identical(dim(res1), dim(resN)[1:4]) + , + identical(dimnames(res1), dimnames(resN)[1:4]) + , + identical(dimnames(resN), + list(n = c("100", "150"), s0 = c("3", "15"), + alpha = c("0.05", "0.01"), + fraction = c("0.40", "0.45", "0.50", "0.55", "0.60", "0.65", "0.70"), + n.sim = NULL)) + , + identical(dim(resN), dim(resN.)), + identical(dim(res1), dim(res1.)), + identical(dimnames(resN), dimnames(resN.)), + identical(dimnames(res1), dimnames(res1.)) + ) > > > ## getArray() does not work [directly], because 's0' influences size of result: > emsg <- tryCatch( getArray(res1), error=function(e) e$message) > stopifnot(identical(emsg, "\"value\" elements of 'x' differ in length")) > v.s03 <- getArray(resN[,"s0" = "3",,,]) > v.s15 <- getArray(resN[,"s0" = "15",,,]) > tN <- getArray(resN, "time") > > stopifnot(dim(v.s03) == c(68, 2, 2, 7, 3), + dim(v.s15) == c(80, 2, 2, 7, 3), + ## more relevantly, res1 *is* identical to the first round of resN[] -- "seed" worked: + all.equal(getArray(res1[, "3",,]), v.s03[,,,,1], tol = 1e-14) + , + all.equal(getArray(res1[,"15",,]), v.s15[,,,,1], tol = 1e-14) + , + ## no errors, no warnings: + !getArray(resN, "error"), !getArray(resN, "warning"), + ## + tN >= 0, identical(dimnames(tN)[-2], dimnames(v.s03)[-1]) + ) > > varSm.no.s0 <- varSmini; varSm.no.s0$s0 <- NULL > > > ## Now, with a typo in the call, we'd want to get a decent error message, but do not (YET ?) here: > system.time( + resE <- doClusterApply(varSmini, cluster = parallel::makeCluster(2, "PSOCK"), + sfile=NULL, doOne = do1.Dd, DGB = TRUE) + ) user system elapsed 2.92 1.05 5.01 > ## but actually, there *is* no error, nor warning: the wrongly spelled argument > ## is simply "dropped to the floor" ... > eM2 <- tryCatch(getArray(resE), error = function(e) e$message) > stopifnot(identical(eM2, "\"value\" elements of 'x' differ in length")) > ## but these work fine > r03 <- getArray(resE[,s0 = "3",,,]) > r15 <- getArray(resE[,s0 ="15",,,]) > stopifnot(!anyNA(r03), !anyNA(r15), + all.equal(r03, v.s03, tol=1e-14), + all.equal(r15, v.s15, tol=1e-14)) > > ## with do1.D (no '...'), this now *gives* a relevant warning [warn = 2 above ==> error] > rrr <- tryCatch.W.E( + doClusterApply(varSmini, cluster = parallel::makeCluster(2, "PSOCK"), + sfile=NULL, doOne = do1.D, DGB = TRUE) + ) > stopifnot( + identical(names(rrr), c("value", "warning")), + grepl("unused argument (DGB = TRUE)", rrr$warning$message, fixed=TRUE), + ## all NULL values and 'error's are TRUE: + vapply(lapply(rrr$value, `[[`, "value"), is.null, NA), + all(getArray(rrr$value, "error")) + ) > > if(FALSE)# fails + mayplot(r03, vList=varSm.no.s0) > > ## Does error happen with doLapply() -- no, not either with 'do1.Dd' (hmm ... FIXME?) > system.time( + reLE <- doLapply(varSmini, sfile=NULL, doOne = do1.Dd, DGB = TRUE) + ) FYI: Argument names from doOne() not present in varlist or '...' of subjob(). Non-matching argument names (may be perfectly valid): 'DBG', '...' user system elapsed 2.50 0.02 2.53 > ## but it *does* print the 'messages' > ## " Have argument names from doOne() not present ........ names:‘DBG’, ‘...’ " > ## > ## and with do1.D() {no "..." argument}: > options(warn=1) > reL.. <- tryCatch.W.E( + doLapply(varSmini, sfile=NULL, doOne = do1.D, DGB = TRUE) + ) FYI: Argument names from doOne() not present in varlist or '...' of subjob(). Non-matching argument names (may be perfectly valid): 'DBG' > stopifnot( + identical(names(reL..), c("value", "warning")), + grepl("unused argument (DGB = TRUE)", reL..$warning$message, fixed=TRUE), + ## all NULL values and 'error's are TRUE: + vapply(lapply(reL..$value, `[[`, "value"), is.null, NA), + all(getArray(reL..$value, "error")) + ) > > proc.time() user system elapsed 16.45 4.95 25.42