使用 walk 和 purrr 创建文件夹

Creating Folders using walk and purrr

我正在尝试创建一个小函数来在 R 中设置工作环境 最后它只是一个函数,我可以在其中指定我想要设置的文件夹结构 我想借此机会学习purrr

下面是我在项目中设置的代码,因此文件路径是固有的,但我显然没有正确使用它

# Setup Project Folders
library('purrr')
my_folders <- data.frame(folder = c('scripts','sql','figs','results','data','ref_data','reports'))
walk(.f = dir.create(file.path(), showWarnings = FALSE),.x =my_folders)

有人可以帮忙吗?

谢谢

这里的问题是 dir.create 没有向量化,但是,您的数据框上的 walk 会将 1 列数据框传递给 dir.create,这将导致错误见。

我的方法是使用 by_row 来确保将长度为 1 的元素传递给 dir.create,并强制转换为字符向量:

my_folders %>%
  by_row(function(x) dir.create(as.character(x),
         showWarnings = FALSE), .collate = "rows",
         .to = "success")

这仅适用于您的数据框只有一列的情况。为了更安全:

my_folders %>%
  by_row(function(x) dir.create(as.character(x$folder),
         showWarnings = FALSE), .collate = "rows",
         .to = "success")

我是 purrr 的新手,所以可能有更好的方法...