imap
построен для этого.
purrr::imap(lst, ~cat(.x, file = paste0(.y, ".txt")))
С ?imap
- это короткая рука для map2 (x, names (x))
Так что вы также можете сделать
purrr::map2(lst, names(lst), ~cat(.x, file = paste0(.y, ".txt")))
или в базе R
mapply(function(x, y) cat(x, file = paste0(y, ".txt")), lst, names(lst))