如何将分析进度输出到控制台

时间:2014-01-02 13:15:05

标签: r

如何编写R代码用于控制台输出我的分析进度?

我有以下代码用于循环遍历多个文件夹:

for (f in folder.paths){
cmd....
}

我希望在控制台中输出以下消息:“运行文件夹Sky1 ....”

谢谢

4 个答案:

答案 0 :(得分:3)

与费尔南多的答案类似,但这里所有内容都保持不变:

for(i in 1:10) {
  cat("\rWorking on", i)
  Sys.sleep(1)
}

尝试一下。

答案 1 :(得分:3)

message()可能是cat的另一种选择。帮助(?message)说:

  

message用于生成“简单”诊断消息   既没有警告也没有错误,但仍然表示为   条件。与警告和错误不同,最终换行符被视为   消息的一部分,是可选的。

答案 2 :(得分:2)

您可以使用cat():

n.files = length(folder.paths)

for (i in 1 : n.files){
    cat("proc: ", round(100*i/n.files, 1), "%", sep = "",  "\n")
}

未经测试,但应该可以使用。

答案 3 :(得分:2)

使用日志包,例如loggingfutile.logger

为什么?

好吧,您可以定义具有不同“级别”的消息 - 信息,警告等 - 然后全局控制您是否看到这些消息。因此,您(或运行您的代码的任何人)有权在不想要的情况下看不到消息。您甚至可以为不同的函数定义不同的记录器,因此您可以关闭来自特定函数的消息,而无需进入并注释掉它们或包含一些kludgy if(loggingthis)cat("here we are\n")代码。您甚至可以将日志消息定向到文件而不是控制台。

如果您想要显示进度,请使用进度条!基数R中有txtProgressBarplyr包有一些更高级的包。只需安装plyr并执行help.search("progress")

即可