使用 Purrr 导出列表
Using Purrr to export a list
我有一个包含子表的列表。我希望能够使用 purrr
以列表中项目的名称单独导出表格 - 在下面的例子中,我将获得三个文件,每个植物都以今天的日期命名
library('purrr')
library('tidyverse')
mytest <- iris
mylist <- split(mytest,f = mytest$Species)
names(mylist)
# basically pseudo code for explanation purposes
write_excel_csv(mylist[1], names(mylist[1]))
我目前只是在学习如何有效地使用它,所以如果能提供任何帮助解释以及你为什么这样做会很棒
我知道我可以编写一个 for 循环来遍历列表,但我想将其用作开始 purrr
的学习经验
感谢您的宝贵时间
来自 base R 的 Map
可以很好地处理这样的事情:
Map(write.csv, mylist, sprintf("%s-%s.csv", names(mylist), Sys.Date()))
list.files(pattern = "*.csv")
# [1] "setosa-2017-02-13.csv" "versicolor-2017-02-13.csv" "virginica-2017-02-13.csv"
或者,walk2
(可能还有 purrr
中的其他几个函数)也可以以这种方式使用。
我有一个包含子表的列表。我希望能够使用 purrr
以列表中项目的名称单独导出表格 - 在下面的例子中,我将获得三个文件,每个植物都以今天的日期命名
library('purrr')
library('tidyverse')
mytest <- iris
mylist <- split(mytest,f = mytest$Species)
names(mylist)
# basically pseudo code for explanation purposes
write_excel_csv(mylist[1], names(mylist[1]))
我目前只是在学习如何有效地使用它,所以如果能提供任何帮助解释以及你为什么这样做会很棒
我知道我可以编写一个 for 循环来遍历列表,但我想将其用作开始 purrr
感谢您的宝贵时间
Map
可以很好地处理这样的事情:
Map(write.csv, mylist, sprintf("%s-%s.csv", names(mylist), Sys.Date()))
list.files(pattern = "*.csv")
# [1] "setosa-2017-02-13.csv" "versicolor-2017-02-13.csv" "virginica-2017-02-13.csv"
或者,walk2
(可能还有 purrr
中的其他几个函数)也可以以这种方式使用。