Internal utility function.
Arguments
- ...
iterable arguments passed to .purrr
- .purrr
purrr or furrr function
- .f
function to be executed over iterables
- .f_args
list of arguments passed to .f, Default: list()
- .purrr_args
list of arguments passed to .purrr, Default: list()
- .steps
integer number of iterations
- .slow
logical slows down execution, Default: FALSE
- .progress
logical, show progress bar, Default: TRUE
Details
Call still needs to be wrapped in with_progress
or with_progress_cnd()
Examples
# purrr::map
progressr::with_progress(
purrr_bar(rep(0.25, 5), .purrr = purrr::map, .f = Sys.sleep, .steps = 5)
)
#> [[1]]
#> NULL
#>
#> [[2]]
#> NULL
#>
#> [[3]]
#> NULL
#>
#> [[4]]
#> NULL
#>
#> [[5]]
#> NULL
#>
# \donttest{
# purrr::walk
progressr::with_progress(
purrr_bar(rep(0.25, 5), .purrr = purrr::walk,.f = Sys.sleep, .steps = 5)
)
# progress bar off
progressr::with_progress(
purrr_bar(
rep(0.25, 5), .purrr = purrr::walk,.f = Sys.sleep, .steps = 5, .progress = FALSE
)
)
# purrr::map2
progressr::with_progress(
purrr_bar(
rep(1, 5), rep(2, 5),
.purrr = purrr::map2,
.f = `+`,
.steps = 5,
.slow = TRUE
)
)
#> [[1]]
#> [1] 3
#>
#> [[2]]
#> [1] 3
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 3
#>
#> [[5]]
#> [1] 3
#>
# purrr::pmap
progressr::with_progress(
purrr_bar(
list(rep(1, 5), rep(2, 5)),
.purrr = purrr::pmap,
.f = `+`,
.steps = 5,
.slow = TRUE
)
)
#> [[1]]
#> [1] 3
#>
#> [[2]]
#> [1] 3
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 3
#>
#> [[5]]
#> [1] 3
#>
# define function within purr_bar() call
progressr::with_progress(
purrr_bar(
list(rep(1, 5), rep(2, 5)),
.purrr = purrr::pmap,
.f = function(x, y) {
paste0(x, y)
},
.steps = 5,
.slow = TRUE
)
)
#> [[1]]
#> [1] "12"
#>
#> [[2]]
#> [1] "12"
#>
#> [[3]]
#> [1] "12"
#>
#> [[4]]
#> [1] "12"
#>
#> [[5]]
#> [1] "12"
#>
# with mutate
progressr::with_progress(
tibble::tibble(x = rep(0.25, 5)) %>%
dplyr::mutate(x = purrr_bar(x, .purrr = purrr::map, .f = Sys.sleep, .steps = 5))
)
#> # A tibble: 5 × 1
#> x
#> <list>
#> 1 <NULL>
#> 2 <NULL>
#> 3 <NULL>
#> 4 <NULL>
#> 5 <NULL>
# }