在使用Tidyverse中的purrr包时,我注意到map()函数返回一个列表。
library(tidyverse)
set.seed(123)
map(1:5, ~rnorm(3))
#> [[1]]
#> [1] -0.5604756 -0.2301775 1.5587083
#>
#> [[2]]
#> [1] 0.07050839 0.12928774 1.71506499
#>
#> [[3]]
#> [1] 0.4609162 -1.2650612 -0.6868529
#> ......
我想将此列表转换为一个有3列的数据框。一种选择是使用do.call(rbind, .)
。然而,我也注意到了map_dfr()
函数的存在。
以与map()
相同的方式使用此函数会出现错误。
map_dfr(1:5, ~rnorm(3))
#> Error: Argument 1 must have names.
问题
map()
和map_dfr()
函数有哪些区别导致出现此错误?如何使用map_dfr()
函数在映射函数中直接绑定行?
t(mapply(rnorm, 3, 1:5))
- jay.sfmap_dfr
答案的一个最近的例子 - https://stackoverflow.com/q/66480541/10276092 - M.Viking