map2 {purrr} | R Documentation |
These functions are variants of map()
iterate over multiple
arguments in parallel. map2
is specialised for the two argument
case; pmap
allows you to provide any number of arguments in a
list.
map2(.x, .y, .f, ...) map2_lgl(.x, .y, .f, ...) map2_int(.x, .y, .f, ...) map2_dbl(.x, .y, .f, ...) map2_chr(.x, .y, .f, ...) map2_df(.x, .y, .f, ..., .id = NULL) pmap(.l, .f, ...) pmap_lgl(.l, .f, ...) pmap_int(.l, .f, ...) pmap_dbl(.l, .f, ...) pmap_chr(.l, .f, ...) pmap_df(.l, .f, ..., .id = NULL) walk2(.x, .y, .f, ...) pwalk(.l, .f, ...)
.x, .y |
Vectors of the same length. A vector of length 1 will be recycled. |
.f |
A function, formula, or atomic vector. If a function, it is used as is. If a formula, e.g. If character or integer vector, e.g. |
... |
Additional arguments passed on to |
.id |
If not |
.l |
A list of lists. The length of |
Note that arguments to be vectorised over come before the .f
,
and arguments that are supplied to every call come after .f
.
pmap()
and pwalk()
take a single list .l
and
map over all its elements in parallel.
An atomic vector, list, or data frame, depending on the suffix.
Atomic vectors and lists will be named if .x
or the first
element of .l
is named.
x <- list(1, 10, 100) y <- list(1, 2, 3) map2(x, y, ~ .x + .y) # Or just map2(x, y, `+`) # Split into pieces, fit model to each piece, then predict by_cyl <- mtcars %>% split(.$cyl) mods <- by_cyl %>% map(~ lm(mpg ~ wt, data = .)) map2(mods, by_cyl, predict)