使用 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 的新手,所以可能有更好的方法...
我正在尝试创建一个小函数来在 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 的新手,所以可能有更好的方法...