我有一个foreach使用循环%dopar%使用doSNOW作为后端.如何在每次迭代中打印循环?
我下面的代码是我目前使用的,但它不打印任何东西.
foreach(ntree=rep(25,2),.combine=combine,.packages='randomForest',
.inorder=FALSE) %dopar% {
print("RANDOM FOREST")
randomForest(classForm,data=data,na.action=na.action,do.trace=do.trace,ntree=ntree,mtry=mtry)
}
Run Code Online (Sandbox Code Playgroud) 使用foreach和doMC后端使用"多核"并行性时(我使用doMC时,我调查了其他包不允许从我想要获取进度条,使用进度包,但任何进度)这适用于Linux终端,即没有tcltk弹出窗口).
鉴于它使用分叉,我可以想象它可能不可能,但我不确定.
预期用途是指示并行加载连接100个文件时的进度(通常在#!Rscript中)
我看过几个帖子,比如在R中使用"foreach()"函数时如何创建进度条?.很高兴为此奖励.
编辑
为有人向我展示500分的赏金
Reprex
# load packages
library("futile.logger")
library("data.table")
library("foreach")
# create temp dir
tmp_dir <- tempdir()
# create names for 200 files to be created
nb_files <- 200L
file_names <- file.path(tmp_dir, sprintf("file_%s.txt", 1:nb_files))
# make it reproducible
set.seed(1L)
nb_rows <- 1000L
nb_columns <- 10L
# create those 200 files sequentially
foreach(file_i = file_names) %do%
{
DT <- as.data.table(matrix(data = runif(n = nb_rows * nb_columns), nrow …Run Code Online (Sandbox Code Playgroud)