【发布时间】:2021-03-26 22:26:02
【问题描述】:
大家好,我已经阅读了帮助文件和很多关于这个主题的问题,但找不到 答案。我相信这是一个非常简单的问题,所以我可能遗漏了一些明显的东西。
我想替换这样一个基本的for loop实现,比如
lst <- list()
for (i in 1:10) {
lst[[i]] <- rnorm(n = 3, mean = 5, sd = 3)
}
lst
使用purrr::map(),同时用完函数的所有参数(这里:rnorm())
以下不起作用并返回unused argument 错误。
1:10 %>%
map(rnorm, n = 3, mean = 5, sd = 3)
# Error in .f(.x[[i]], ...) : unused argument (.x[[i]])
以下运行,但 map 将参数 1:10 传递给 rnorm(sd = .x),所以
结果不是预期的。
library(purrr)
1:3 %>%
map(rnorm, n = 3, mean = 5)
#> [[1]]
#> [1] 5.133702 6.456135 5.041438
#>
#> [[2]]
#> [1] 5.722486 4.614772 2.640809
#>
#> [[3]]
#> [1] 1.445749 5.826666 6.096497
有没有一种简单的方法可以做到这一点?
感谢您的时间和关注。
【问题讨论】: