在R中创建进度条

本文来源:Creating a progress bar in R | Joseph Crispell

目录

1.The print() function

2.The cat() function

3.The modulus operator(%%)

 4.Overwriting a printed line using \r

5.progress()function

来源:


我们都一直在等待一个for循环完成,或者一个特别复杂的函数。多年来,在跟踪我的R代码进度时,我遇到了一些启示。这篇文章记录了我找到在R中创建进度条知识点的顺序!

1.The print() function

for(i in 1:500){
  
	# Sleep for 0.1 seconds
	Sys.sleep(0.01)
  
	# Print progress
	print(paste("Finished", i, "of", n))
}  

2.The cat() function

for(i in 1:500){
 
	# Sleep for 0.1 seconds
	Sys.sleep(0.01)

	# Print progress
	cat("Finished", i, "of", n, "\n")
}

3.The modulus operator(%%)

for(i in 1:500){
  
	# Sleep for 0.1 seconds
	Sys.sleep(0.01)

	# Print progress
	if(i %% 100 == 0){
		cat("Finished", i, "of", n, "\n")
	}
}

 

 4.Overwriting a printed line using \r

for(i in 1:500){
  
	# Sleep for 0.1 seconds
	Sys.sleep(0.01)

	# Print progress
	cat("\rFinished", i, "of", n)
}

5.progress()function

library(basicPlotteR)

for(i in 1:500){
  
	# Sleep for 0.1 seconds
	Sys.sleep(0.01)

	# Print progress
	progress(i, n)
}

 

6. txtProgressBar()函数

# Initialise a progress bar
pb <- txtProgressBar(min = 1, max = n, style = 3)

for(i in 1:500){
  
	# Sleep for 0.1 seconds
	Sys.sleep(0.01)

	# Print progress
	setTxtProgressBar(pb, i)
}
close(pb)

 

每种监控进度的方法在不同的情况下都很有用。

  • 虽然最后两个选项看起来很棒,但它们只对循环内部有用。
  • \r让我大吃一惊,应该适用于大多数语言!
  • 模数(%%)可能是我使用最多的一个,允许我在不向屏幕打印数百或数千行的情况下检查我的进度。
  • 任何想使用和查看我的进度()函数的代码的人,您都可以在github上找到它。它是我的basicPlotteR包的一部分。

来源:

Creating a progress bar in R | Joseph Crispell (这篇文章写的实在是太棒了,总结了R中的进度条函数,并且通过动画展示了每个函数的结果,每个函数的以一个简短易懂的代码进行介绍,非常有趣的文章!)

猜你喜欢

转载自blog.csdn.net/u011375991/article/details/132723233