
dmap()
is just like map()
but always returns a
data frame. In addition, it handles grouped or sliced data frames.dmap(.d, .f, ...)dmap_at(.d, .at, .f, ...)
dmap_if(.d, .p, .f, ...)
If a function, it is used as is.
If a formula, e.g. ~ .x + 2
, it is converted to a
function with two arguments, .x
or .
and .y
.f
..at
will be
modified..x
.
Alternatively, if the elements of .x
are themselves lists of
objects, a string indicating the name of a lodmap_at()
and dmap_if()
recycle length 1 vectors to
the group sizes.# dmap() always returns a data frame:
dmap(mtcars, summary)
# dmap() also supports sliced data frames:
sliced_df <- mtcars[1:5] %>% slice_rows("cyl")
sliced_df %>% dmap(mean)
sliced_df %>% dmap(~ .x / max(.x))
# This is equivalent to the combination of by_slice() and dmap()
# with 'rows' collation of results:
sliced_df %>% by_slice(dmap, mean, .collate = "rows")
Run the code above in your browser using DataLab