cp_map_dfc {currr} | R Documentation |
Wrapper function of purrr::map
. Apply a function to each element of a vector, but save the intermediate data after a given number of iterations.
Description
The map functions transform their input by applying a function to
each element of a list or atomic vector and returning an object of
the same length as the input. cp_map
functions work exactly the
same way, but creates a secret folder in your current working directory
and saves the results if they reach a given checkpoint. This way
if you rerun the code, it reads the result from the cache folder
and start to evalutate where you finished.
-
cp_map()
always returns a list. -
map_lgl()
,map_dbl()
andmap_chr()
return an atomic vector of the indicated type (or die trying). For these functions,.f
must return a length-1 vector of the appropriate type.
Usage
cp_map_dfc(.x, .f, ..., name = NULL, cp_options = list())
Arguments
.x |
A list or atomic vector. |
.f |
A function, specified in one of the following ways:
|
... |
Additional arguments passed on to the mapped function. |
name |
Name for the subfolder in the cache folder. If you do not specify,
then |
cp_options |
Options for the evaluation:
You can set these options also with |
Value
A tibble.
See Also
Other map variants:
cp_map_chr()
,
cp_map_dbl()
,
cp_map_dfr()
,
cp_map_lgl()
,
cp_map()
Examples
# Run them on console!
# (functions need writing and reading access to your working directory and they also print)
avg_n <- function(.data, .col, x) {
Sys.sleep(.01)
.data |>
dplyr::pull({{ .col }}) |>
(\(m) mean(m) * x) ()
}
cp_map(.x = 1:10, .f = avg_n, .data = iris, .col = Sepal.Length, name = "iris_mean")
# same function, read from cache
cp_map(.x = 1:10, .f = avg_n, .data = iris, .col = Sepal.Length, name = "iris_mean")
remove_currr_cache()