通过替换旧行在控制台中打印多行文本

时间:2018-08-23 10:47:13

标签: r

我想将行文本打印到控制台,以替换当前打印的三行。 here解决方案不适用于 3 行。

我希望每次迭代都输出以下结果:

Line1

Line2

Line3

我尝试了以下操作:

for(i in 1:3){
  cat('\rLine1', '\rLine2', '\rLine3')
}

输出:第3行

for(i in 1:3){
  cat('\rLine1', '\nLine2', '\nLine3')
}

输出:

Line1

Line2

Line1

Line2

Line1

Line2

Line3

for(i in 1:3){
  cat('\rLine1', 'Line2', 'Line3')
}

输出:Line1 Line2 Line3 Line2 Line3

请注意,acutall文本是不同的,不是line1,line2和line3,但是它实际上是函数的进度,耗时和预测的时间,但是所有变量都是字符。见

cat('\rProgress: |',rep('=',floor((i/iterations)*50)),rep(' ',50 - floor((i/iterations)*50)),'|',
      'Elapsed time:', elapsedTime,
      'Time left:',    predictedTime,
      sep = '')

实际代码太长且太复杂,因此我提供了上面的示例。所需的输出是

进度:| ================== |

经过时间:0小时,0分钟,4秒

剩余时间:0小时,0分钟,10秒

1 个答案:

答案 0 :(得分:0)

尝试一下:

lines <- rep(c("Line1", "Line2", "Line3"), 3) # for 3 iterations
cat(lines, sep = "\n")
#output
Line1
Line2
Line3
Line1
Line2
Line3
Line1
Line2
Line3