如何使用purrr将命名列表写入文件(带有列表名称)

时间:2019-06-18 23:45:45

标签: r purrr cat

列表中的每个(命名)元素都是一个字符串。如何用purrr在那些字符串上写这些字符串?

对于单个元素,我使用以下代码:

cat(list[[1]], file = paste0(names(list)[1], ".txt"))

cat(list[[1]], file = names(list)[1]))

如果我直接用扩展名命名列表。

我希望一次写入所有文件。

2 个答案:

答案 0 :(得分:2)

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))

答案 1 :(得分:2)

我们可以使用iwalk

library(purrr)
iwalk(lst, ~ cat(.x, paste0(.y, ".txt")))

或使用base R

lapply(names(lst), function(nm) cat(lst[[nm]], paste0(nm, ".txt")))