R Вывод на консоль не отображается перед большой операцией - PullRequest
0 голосов
/ 09 октября 2019

В своих функциях я заметил, что операции 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)в надежде, что это даст консоли время для обновления, она все еще отстает. Любые рекомендации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...