conditional-map {purrr} | R Documentation |
map_if()
maps a function over the elements of .x
satisfying a predicate. map_at()
is similar but will modify
the elements corresponding to a character vector of names or a
mumeric vector of positions.
map_if(.x, .p, .f, ...) map_at(.x, .at, .f, ...)
.x |
A list or atomic vector. |
.p |
A single predicate function, a formula describing such a
predicate function, or a logical vector of the same length as |
.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 |
.at |
A character vector of names or a numeric vector of
positions. Only those elements corresponding to |
A list.
# Convert factors to characters iris %>% map_if(is.factor, as.character) %>% str() # Specify which columns to map with a numeric vector of positions: mtcars %>% map_at(c(1, 4, 5), as.character) %>% str() # Or with a vector of names: mtcars %>% map_at(c("cyl", "am"), as.character) %>% str() list(x = rbernoulli(100), y = 1:100) %>% transpose() %>% map_if("x", ~ update_list(., y = ~ y * 100)) %>% transpose() %>% simplify_all()