tryCatch({
fm <- flexmix( cbind(V1, 1-V1) ~ .-V1, data=dat, k=K,
model = FLXMRglm(family = binomial(link = link)) )
- p <- mean(fm@posterior[["scaled"]][,1])
+ pf <- mean(fm@posterior[["scaled"]][,1])
out <- refit(fm)
beta_b <- sapply( seq_len(K), function(i) {
as.double( out@components[[1]][[i]][,1] )
} )
- res2 <- rbind(p, beta_b[2:nrow(beta_b),], beta_b[1,])
+ res2 <- rbind(pf, beta_b[2:nrow(beta_b),], beta_b[1,])
}, error = function(e) {
res2 <- NA
})
}
}
}
- # Bet that at least one run succeded:
- do.call(rbind,best_par)
+ do.call(rbind,best_par) #return NULL on empty list
}
),
prepareArgs = function(fargs, index) {
fargs$Y <- io$Y
fargs
}, N=N, ncores=ncores, verbose=TRUE)
- for (i in 1:2)
+ p <- c(p, 1-sum(p))
+ for (i in 1:length(res)) {
+ for (j in N:1) {
+ if (is.null(res[[i]][[j]]) || is.na(res[[i]][[j]]))
+ res[[i]][[j]] <- NULL
+ }
+ print(paste("Count valid runs for ",i," = ",length(res[[i]]),sep=""))
res[[i]] <- alignMatrices(res[[i]], ref=rbind(p,beta,b), ls_mode="exact")
+ }
res
}