X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=pkg%2FR%2FselectVariables.R;h=d863a4b7faeb5fc7e315c05b017801fb8e06fe2c;hp=bfe4042d1ec639173b38bd65ac9cb113c186b564;hb=ea5860f1b4fc91f06e371a0b26915198474a849d;hpb=a3cbbaea1cc3c107e5ca62ed1ffe7b9499de0a91 diff --git a/pkg/R/selectVariables.R b/pkg/R/selectVariables.R index bfe4042..d863a4b 100644 --- a/pkg/R/selectVariables.R +++ b/pkg/R/selectVariables.R @@ -37,15 +37,22 @@ selectVariables <- function(phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma params <- EMGLLF(phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda, X, Y, eps, fast) - p <- dim(phiInit)[1] - m <- dim(phiInit)[2] + p <- ncol(X) + m <- ncol(Y) # selectedVariables: list where element j contains vector of selected variables # in [1,m] selectedVariables <- lapply(1:p, function(j) { # from boolean matrix mxk of selected variables obtain the corresponding boolean # m-vector, and finally return the corresponding indices - seq_len(m)[apply(abs(params$phi[j, , ]) > thresh, 1, any)] + if (m>1) { + seq_len(m)[apply(abs(params$phi[j, , ]) > thresh, 1, any)] + } else { + if (any(params$phi[j, , ] > thresh)) + 1 + else + numeric(0) + } }) list(selected = selectedVariables, Rho = params$rho, Pi = params$pi)