【问题标题】:Creating Folders using walk and purrr使用 walk 和 purrr 创建文件夹
【发布时间】:2017-07-15 02:00:55
【问题描述】:

我正在尝试创建一个在 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)

谁能帮忙?

谢谢

【问题讨论】:

    标签: r purrr


    【解决方案1】:

    这里的问题是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 很陌生,所以可能有更好的方法...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多