看板 R_Language 關於我們 聯絡資訊
[關鍵字]: 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
andrew43: 有趣有趣。 08/19 23:27
※ 編輯: Wush978 (220.135.56.60), 08/20/2014 13:29:56
cywhale: 筆記筆記~ funny~ 08/21 00:36