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.