map_if | R Documentation |
The functions map_if()
and map_at()
take .x
as input, apply
the function .f
to some of the elements of .x
, and return a
list of the same length as the input.
map_if()
takes a predicate function .p
as input to determine
which elements of .x
are transformed with .f
.
map_at()
takes a vector of names or positions .at
to specify
which elements of .x
are transformed with .f
.
map_if(.x, .p, .f, ..., .else = NULL)
map_at(.x, .at, .f, ..., .parallel = FALSE, .progress = FALSE)
.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, specified in one of the following ways:
|
... |
Additional arguments passed on to the mapped function. We now generally recommend against using # Instead of x |> map(f, 1, 2, collapse = ",") # do: x |> map(\(x) f(x, 1, 2, collapse = ",")) This makes it easier to understand which arguments belong to which function and will tend to yield better error messages. |
.else |
A function applied to elements of |
.at |
A logical, integer, or character vector giving the elements to select. Alternatively, a function that takes a vector of names, and returns a logical, integer, or character vector of elements to select.
|
.parallel |
See parallelization for more details. |
.progress |
Whether to show a progress bar. Use |
Other map variants:
imap()
,
lmap()
,
map()
,
map2()
,
map_depth()
,
modify()
,
pmap()
# Use a predicate function to decide whether to map a function:
iris |> map_if(is.factor, as.character) |> str()
# Specify an alternative with the `.else` argument:
iris |> map_if(is.factor, as.character, .else = as.integer) |> str()
# Use numeric vector of positions select elements to change:
iris |> map_at(c(4, 5), is.numeric) |> str()
# Use vector of names to specify which elements to change:
iris |> map_at("Species", toupper) |> str()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.