Progress: μ—¬λŸ¬ 진행λ₯  ν‘œμ‹œμ€„

에 λ§Œλ“  2015λ…„ 12μ›” 27일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: r-lib/progress

ν›Œλ₯­ν•  κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 진행λ₯  ν‘œμ‹œμ€„μ— 진행λ₯  ν‘œμ‹œμ€„μ΄ μžˆλŠ” 경우...

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

예 λ°”λ‘œ κ·Έ κ±°μ˜ˆμš”.

ν™œμ„± 진행λ₯  ν‘œμ‹œμ€„μ˜ κΈ€λ‘œλ²Œ μŠ€νƒμ„ κ°€μ§ˆ 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν•˜λ‚˜μ˜ 진행λ₯  ν‘œμ‹œμ€„, 특히 R Studio만 μ§€μ›ν•˜λŠ” λ””μŠ€ν”Œλ ˆμ΄μ—μ„œλŠ” 맨 μœ„μ— μžˆλŠ” κ²ƒλ§Œ ν‘œμ‹œν•˜κ³  λ‚˜λ¨Έμ§€μ— λŒ€ν•œ μš”μ•½μ„ ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예: μ„Έ 가지 μˆ˜μ€€:

85% | 34% | 50% [====================--------------------] ETA 13s

μ μ ˆν•œ ANSI 지원이 μžˆλŠ” ν„°λ―Έλ„μ˜ 경우 λͺ¨λ“  진행λ₯  ν‘œμ‹œμ€„(μ΅œλŒ€ 10-20개)을 ν•œ λ²ˆμ— ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  7 λŒ“κΈ€

λ‹€μŒκ³Ό 같은 것이 μž‘λ™ν•˜λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

pb1 <- progress_bar$new(total = 100)
for(i in 1:100){
  pb1$tick()
  pb2 <- progress_bar$new(total = 100)  
  for(j in 1:100){
    pb2$tick()
    Sys.sleep(1/1000)
    }
}

예 λ°”λ‘œ κ·Έ κ±°μ˜ˆμš”.

ν™œμ„± 진행λ₯  ν‘œμ‹œμ€„μ˜ κΈ€λ‘œλ²Œ μŠ€νƒμ„ κ°€μ§ˆ 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν•˜λ‚˜μ˜ 진행λ₯  ν‘œμ‹œμ€„, 특히 R Studio만 μ§€μ›ν•˜λŠ” λ””μŠ€ν”Œλ ˆμ΄μ—μ„œλŠ” 맨 μœ„μ— μžˆλŠ” κ²ƒλ§Œ ν‘œμ‹œν•˜κ³  λ‚˜λ¨Έμ§€μ— λŒ€ν•œ μš”μ•½μ„ ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예: μ„Έ 가지 μˆ˜μ€€:

85% | 34% | 50% [====================--------------------] ETA 13s

μ μ ˆν•œ ANSI 지원이 μžˆλŠ” ν„°λ―Έλ„μ˜ 경우 λͺ¨λ“  진행λ₯  ν‘œμ‹œμ€„(μ΅œλŒ€ 10-20개)을 ν•œ λ²ˆμ— ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•œ 쀄에 3개 λ˜λŠ” 4개의 λ™μ‹œ 진행λ₯  ν‘œμ‹œμ€„μ„ 지원할 수 μžˆλŠ” ν•œ 가지 방법은 μœ λ‹ˆμ½”λ“œ 점자 νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

[β Ώβ Ώβ Ÿβ ›β ›β ›β ’β ’β ’β ’       ]

@jimhester λ˜‘λ˜‘ν•˜μ§€λ§Œ λΆˆν–‰νžˆλ„ 맀우 μ œν•œμ μž…λ‹ˆλ‹€.

λ‚΄κ°€ λ§Œλ“  μ•„λž˜ κΈ°λŠ₯은 맀우 μ‘°μž‘ν•˜μ§€λ§Œ μ™œ μ•„λž˜μ™€ 같은 것이 κ°€λŠ₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ? 진행 μ˜΅μ…˜μ΄ μžˆλŠ” 진행 μŠ€νƒ€μΌ νŒ¨ν‚€μ§€λ‘œ λ§Œλ“€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

데이터 μž¬μƒμ„±:

df <- data.frame(samplecol=c(1:50),
           file=c(1:50))
df$file <- paste0("file",df$file)

x <-function() {Sys.sleep(1/100)}
y <-function() {Sys.sleep(1/20)}

κΈ°λŠ₯:

doubleProgressBar <- function(x, y) {
    for (i in 1:100) {
      x()
        for(j in 1:50){ 
          y()
          cat("\014")
          writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")), 
                      paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
        }
      cat("\014")
      writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")), 
                   paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
    }
}

###Does what I want, but with crude text entry. 
###Would be nice to have a package with nice entry have a double bar
doubleProgressBar(x,y)

λͺ¨λ“  R 터미널 이 μ»€μ„œλ₯Ό μœ„λ‘œ 이동 ν•˜λŠ” \r 둜 ν…μŠ€νŠΈμ˜ λ§ˆμ§€λ§‰ μ€„λ§Œ μ§€μš°λŠ” κ²ƒμœΌλ‘œ μ œν•œλ©λ‹ˆλ‹€.

전체 ANSI μ΄μŠ€μΌ€μ΄ν”„ μ‹œν€€μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” μ˜΅μ…˜μ„ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ˜λŠ” 진행λ₯  ν‘œμ‹œμ€„ μ‚¬μ΄μ˜ μˆ˜ν‰ 곡간을 λΆ„ν• ν•  수 μžˆμŠ΅λ‹ˆλ‹€...

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰