我想捕獲我的R腳本的完整控制檯日誌。我想要按時間順序排列所有事物,並在發生時印刷警告。我試過這個:如何使用控制檯輸出捕獲警告?
options(warn = 1)
tmpSinkfileName <- tempfile()
sink(tmpSinkfileName, split = TRUE)
cat("Doing something\n")
warning("Hi here")
cat("Doing something else\n")
warning("Hi there")
sink()
console.out <- readChar(tmpSinkfileName, file.info(tmpSinkfileName)$size)
unlink(tmpSinkfileName)
cat(console.out)
# Doing something
# Doing something else
warnings()
# NULL
但不幸的是在console.out
中缺少警告。我怎樣才能做到這一點?根據文檔,options(warn = 1)
應該在發生警告時進行打印。不幸的是,他們沒有被sink()
捕獲。
的r CMD BATCH script.R'產生具有完整的會話的文件script.Rout;也許這與你的用例一致? ('R CMD BATCH --vanilla --silent'以避免意外加載保存的工作空間並避免啓動畫面)。 – 2014-09-20 12:55:13