Language(R, Python, SQL)/R

[R] Progress Bar 로 반복문 진척률 및 완료시간 구현

dtstory 2023. 3. 8. 20:00

 

R에서 반복문을 이용해서, 작업 수행을 할 때, 아래와 같이 print(i) 를 이용해서, 현재 진척률을 보고는 할 것이다.

이 방법으로 하게 되었을 땐, 몇번 째 i 가 수행되고 있는지는 확인할 수 있지만, 몇% 정도 진척이 되었는지, 작업 수행시간이 몇 시간이 남았는지 확인하는 것은 불가능하다.( 대충 감으로, 어느정도 됐겠거니.. 라고 생각할 수 있을 뿐이다. )

for(i in 1:10000) {
  print(i)
}

 

아래의 이미지 처럼, 현재 진행률(Progress) 과 예상 완료시간(Estimated Completion time) 을 확인하고 싶지 않은가?

그렇다면, progress 라는 라이브러리를 이용해서, 반복문이 돌아갈 때, 진척률과 완료시간을 표현할 수 있다.

 

 

1. 라이브러리 로드

library(progress)

 

2. pb_func 사용자 정의 함수 선언

pb_func = function(total) {
  tmp_pb <- progress_bar$new(
    format = " Progress: [:bar] :percent, Estimated completion time: :eta",
    total = total, 
    clear = FALSE, 
    width= 80 
  )
  return(tmp_pb)  
}

 

3. 반복 횟수 설정 (임의로, 100000 로 지정)

niter = 100000
pb = pb_func(niter)

 

4. 반복문에 적용

for(i in 1:niter) {
  pb$tick()
}

성공!

 

 

 

 

 

 

728x90