Несложно, но вы можете попробовать 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