シミュレーション中に進捗状況を監視。
path <- "C:/"; set.seed(091021) r <- 20 m <- c(0, 0, 0.3) s <- c(.1, .1, .1) n <- c(10, 10, 10) d <- do.call("rbind", mapply(function(n, m, s) matrix(rnorm(r * n, mean = m, sd = s), nrow=n, ncol=r), n, m, s, SIMPLIFY = FALSE) ) g <- rep(1:length(n), n) nc <<- 0 kw <- apply( d, 2, function(d, g) { res <- kruskal.test(d, g); nc <<- nc + 1; if (nc%%5==0) cat(sprintf("%3.0f%%\n", nc/r*100)); return(res) }, g) kw <- as.vector(sapply(kw, "[[", 3)) kw name <- "kw" save(kw, file = paste(path, name, ".RData", sep=""))
> kw <- apply( + d, 2, function(d, g) { + res <- kruskal.test(d, g); + nc <<- nc + 1; + if (nc%%5==0) cat(sprintf("%3.0f%%\n", nc/r*100)); + return(res) + }, g) 25% 50% 75% 100%
グローバル変数?への代入を利用した。
nc <<- 0