View source: R/superseded-map-df.R
map_dfr | R Documentation |
These map()
, map2()
, imap()
, and pmap()
variants return data
frames by row-binding or column-binding the outputs together.
The functions were superseded in purrr 1.0.0 because their names
suggest they work like _lgl()
, _int()
, etc which require length
1 outputs, but actually they return results of any size because the results
are combined without any size checks. Additionally, they use
dplyr::bind_rows()
and dplyr::bind_cols()
which require dplyr to be
installed and have confusing semantics with edge cases. Superseded
functions will not go away, but will only receive critical bug fixes.
Instead, we recommend using map()
, map2()
, etc with list_rbind()
and
list_cbind()
. These use vctrs::vec_rbind()
and vctrs::vec_cbind()
under the hood, and have names that more clearly reflect their semantics.
map_dfr(.x, .f, ..., .id = NULL)
map_dfc(.x, .f, ...)
imap_dfr(.x, .f, ..., .id = NULL)
imap_dfc(.x, .f, ...)
map2_dfr(.x, .y, .f, ..., .id = NULL)
map2_dfc(.x, .y, .f, ...)
pmap_dfr(.l, .f, ..., .id = NULL)
pmap_dfc(.l, .f, ...)
.id |
Either a string or Only applies to |
# map ---------------------------------------------
# Was:
mtcars |>
split(mtcars$cyl) |>
map(\(df) lm(mpg ~ wt, data = df)) |>
map_dfr(\(mod) as.data.frame(t(as.matrix(coef(mod)))))
# Now:
mtcars |>
split(mtcars$cyl) |>
map(\(df) lm(mpg ~ wt, data = df)) |>
map(\(mod) as.data.frame(t(as.matrix(coef(mod))))) |>
list_rbind()
# map2 ---------------------------------------------
ex_fun <- function(arg1, arg2){
col <- arg1 + arg2
x <- as.data.frame(col)
}
arg1 <- 1:4
arg2 <- 10:13
# was
map2_dfr(arg1, arg2, ex_fun)
# now
map2(arg1, arg2, ex_fun) |> list_rbind()
# was
map2_dfc(arg1, arg2, ex_fun)
# now
map2(arg1, arg2, ex_fun) |> list_cbind()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.