Keep or discard elements using a predicate function.
keep()
and discard()
are opposites. compact()
is a handy
wrapper that removes all empty elements.
keep(.x, .p, ...) discard(.x, .p, ...) compact(.x, .p = identity)
.x |
A list or vector. |
.p |
For For |
... |
Additional arguments passed on to |
These are usually called select
or filter
and reject
or
drop
, but those names are already taken. keep()
is similar to
Filter()
, but the argument order is more convenient, and the
evaluation of the predicate function .p
is stricter.
rep(10, 10) %>% map(sample, 5) %>% keep(function(x) mean(x) > 6) # Or use a formula rep(10, 10) %>% map(sample, 5) %>% keep(~ mean(.x) > 6) # Using a string instead of a function will select all list elements # where that subelement is TRUE x <- rerun(5, a = rbernoulli(1), b = sample(10)) x x %>% keep("a") x %>% discard("a") # compact() discards elements that are NULL or that have length zero list(a = "a", b = NULL, c = integer(0), d = NA, e = list()) %>% compact()
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.