В своих функциях я заметил, что операции cat()
или print()
не обновляют консоль перед основной операцией.
Например, я попытался упростить для моей группы функцию save
,
saveRD <- function(dat){
#This is what i want to print before the major save operation
cat("\nDO NOT CLOSE UNTIL I SAY YOU CAN!\nWait for the sound...")
bringToTop(-1)
Sys.sleep(1)
#History Saver
experimentorsName <- strsplit(getwd(),'/')[[1]][2]
historyName <- paste(experimentorsName, Sys.time(), 'History.r')
historyName <- gsub(":", '_',historyName)
savehistory(historyName)
#Exp Saver
expName <- deparse(substitute(dat))
expToSave <- get(expName, envir = .GlobalEnv)
save(expToSave, file=paste0(expName,".Rdata") )
alarm()
cat('\nYou can now close. Please consider cleaning up the file,\n',historyName,'\n')
}
В приведенной выше функции операция, которую я хотел бы обновитьконсоль до сохранения не обновляется, пока не будет выполнена вся функция.
Например,
bigDat <- sample(seq(1,1e7, .01))
saveRD(bigDat)
Вы заметите, хотя я добавил bringToTop(-1)
и Sys.sleep(1)
в надежде, что это даст консоли время для обновления, она все еще отстает. Любые рекомендации?