r - 如何在 r purrr map 中显示正在处理的函数元素
问题描述
我想要一个函数,作为它的一部分,它向我显示它正在工作的整个元素列表中的哪个元素,以显示函数在我的列表中的进度。我知道如何使用 for 循环来做到这一点,其中我的输入与向量中元素的数字位置相关,但我如何使用 purrr:map 来做到这一点?
x = c('a', 'b', 'c')
for(i in 1:length(x)) {
print(paste0(i, '/', length(x), ' complete'))
}
解决方案
简单,但您可以尝试imap()
或pmap()
:
library(purrr)
mods <- mtcars %>%
split(.$cyl) %>%
imap(~ {Sys.sleep(3) ; mod <- lm(mpg ~ wt, data = .x); cat(.y, "cyl complete\n"); return(mod)})
4 cyl complete
6 cyl complete
8 cyl complete
或者:
dat <- mtcars %>%
split(.$cyl)
mods <-
pmap(list(dat, seq_along(dat), length(dat)), ~ {
Sys.sleep(3)
mod <- lm(mpg ~ wt, data = ..1)
cat(..2, "/", ..3, "complete\n")
return(mod)
})
1 / 3 complete
2 / 3 complete
3 / 3 complete
推荐阅读
- javascript - 为什么我的 pug 文件不显示我检索到的数据?
- c++ - Windows 7 应用程序在不集中时运行速度较慢
- python - Postgresql 锁和 copy_expert
- javascript - 我正在使用 DataTables 插件获取重复的 firestore 数据数组
- nestjs - 如何在 Nestjs 中的 typeorm 中正确配置 ormconfig.json 文件上的实体?
- python - 如何使我的列表理解(及其调用的函数)异步运行?
- java - 是否可以使用 Android / Flutter 关闭手机的所有振动?
- paraview - STL 表面上的点云,按元素集成
- regex - Apache Pig 中的正则表达式提取所需数据
- python - spacy 和 train 数据中的 Cased VS uncased BERT 模型