[分享] 在for之中自動顯示progress bar(不需改code)
[關鍵字]: for, progress bar
原本的版本會無法編輯global environment的物件,所以我改成這樣:
`for` <- function(a, b, expr) {
pb <- txtProgressBar(max = length(b), style = 3)
base::`for`(.i, seq_along(b), {
assign(as.character(substitute(a)), b[.i], envir = globalenv())
eval(substitute(expr), globalenv())
setTxtProgressBar(pb, .i)
})
close(pb)
}
test script:
x <- 0
for(i in 1:10) x <- x + 1
x
---
有時候跑迴圈的時候想要追進度,
可以使用 `txtProgressBar`, `setTxtProgressBar` 這兩個函數來達成目的。
但是我每次改for loop的時候,都覺得這個動作很重複,應該可以一般化。
剛剛研究了一下,發現如果在一開始放入:
`for` <- function(a, b, expr) {
pb <- txtProgressBar(max = length(b), style = 3)
base::`for`(.i, seq_along(b), {
param <- list()
param[[as.character(substitute(a))]] <- b[.i]
eval(substitute(expr), param)
setTxtProgressBar(pb, .i)
})
close(pb)
}
那後面簡單的for loop都會自動加上progress bar,不用改code。
不知道版友們有沒有興趣玩玩看?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.16.164
※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1408460415.A.F2E.html
→
08/19 23:27, , 1F
08/19 23:27, 1F
※ 編輯: Wush978 (220.135.56.60), 08/20/2014 13:29:56
推
08/21 00:36, , 2F
08/21 00:36, 2F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章