
Last chance! 50% off unlimited learning
Sale ends in
Provides a nicely formatted "estimated time left" in loops plus a summary upon completion.
reportTime(i, time_start, nIter = NULL, reportEvery = NULL, jobs = NULL)
current iteration
time when the loop started running
total number of iterations
report progress every n iterations
vector of length nIter
specifying the relative difficulty
of each iteration. If not NULL, estimated time left takes into account
whether the jobs ahead will take more or less time than the jobs already
completed
# NOT RUN {
time_start = proc.time()
for (i in 1:100) {
Sys.sleep(i ^ 1.02 / 10000)
reportTime(i = i, time_start = time_start, nIter = 100, jobs = (1:100) ^ 1.02)
}
# }
# NOT RUN {
# Unknown number of iterations:
time_start = proc.time()
for (i in 1:20) {
Sys.sleep(i ^ 2 / 10000)
reportTime(i = i, time_start = time_start,
jobs = (1:20) ^ 2, reportEvery = 5)
}
# when analyzing a bunch of audio files, their size is a good estimate
# of how long each will take to process
time_start = proc.time()
filenames = list.files('~/Downloads/temp', pattern = "*.wav|.mp3",
full.names = TRUE)
filesizes = file.info(filenames)$size
for (i in 1:length(filenames)) {
# ...do what you have to do with each file...
reportTime(i = i, nIter = length(filenames),
time_start = time_start, jobs = filesizes)
}
# }
Run the code above in your browser using DataLab