| 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()