在purrr::map中显示R cli进度条

uajslkp6  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(139)

我需要一个进度条来显示purrr::pmap的进度。我通常使用cli包来获取面向用户的信息,其中有一个进度条看起来很熟练。但是,我无法访问另一个函数中创建的进度条。

library(cli)
library(purrr)

a <- 1:1000
p <- cli::cli_progress_bar(total = length(a))
te <- function(x){
  cli::cli_progress_update(id=p)
  return(1/x)
}

cli_progress_done(id=p)

a |> purrr::map(te)

看起来id参数没有被使用?有没有办法访问内部函数的进度条,这样我就可以更新进度了?
谢谢!
弗雷德里克

nnsrf1az

nnsrf1az1#

您可以在purrr::map()中使用.progress参数(它基于cli):

a <- 1:1000
map(a, function(x){Sys.sleep(1/100); (1/x)}, .progress = list(
  type = "iterator", 
  format = "Calculating {cli::pb_bar} {cli::pb_percent}",
  clear = TRUE))

相关问题