Подходит ли пакет progress также для пакета doMC?
Или параллельный пакет? Если нет, то +1 за эту функцию.
Честно говоря, я не уверен, что нужно сделать, чтобы это реализовать. Например, для параллельной работы потребуется параллельная работа, чтобы сообщить, сколько работы уже выполнено. Это вообще возможно?
@gaborcsardi Я немного искал и нашел следующее:
library("foreach")
library("doParallel")
library("progress")
registerDoParallel(parallel::makeCluster(7, outfile = ""))
pb <- progress_bar$new(
format = " [:bar] :percent in :elapsed",
total = 30, clear = FALSE, width = 80, force = T)
a <- foreach (i = 1:30) %dopar% {
pb$tick()
Sys.sleep(0.5)
}
pb <- txtProgressBar(title = "Iterative training", min = 0, max = 30, style = 3)
foreach (i = 1:30) %dopar% {
setTxtProgressBar(pb, i)
Sys.sleep(0.5)
}
stopCluster(cl)
txtProgressBar
работает только тогда, когда стиль равен 2 или 3. Согласно руководству по функции:
style = 1 и style = 2 просто показывают строку символа. Они отличаются тем, что style = 2 перерисовывает строку каждый раз, что полезно, если другой код может писать в консоль R. style = 3 отмечает конец диапазона знаком | и дает процент справа от полосы.
Я думаю, что причина, по которой txtProgressBar
работает, заключается в том, что outfile = ""
существует при создании кластера.
Я думаю, имитация того, что делает txtProgressBar
для стиля 2, решит эту проблему.
Самый полезный комментарий
Или параллельный пакет? Если нет, то +1 за эту функцию.