将符合要求的文件复制到新文件夹

时间:2017-07-04 13:49:29

标签: r loops time-series

我有2000个文件的原始文件夹(patha),现在我只想将符合我要求的文件(grdc_no中的列表)复制到新路径(pathb)。这是我的表现:

grdc_no <- grdc$grdc_no       
# list of file name satisfied with my requirement

all_files <- list.files("patha", full.names = TRUE)

for (f in all_files) {

  for (i in 1:length(grdc_no)) {

    if (f == grdc_no[i]) {
      file.copy(f, "pathb")
    } else {}
  }
}

然而,它不起作用。在这种情况下对我有什么建议吗?非常感谢

1 个答案:

答案 0 :(得分:1)

您可以使用lapply在没有循环(尤其是嵌套循环)的情况下轻松完成此操作:

lapply(all_files[basename(all_files) %in% grdc_no],function(x) file.copy(x,"pathb"))

这将从all_files索引文件,并在向量grdc_no中使用匹配的文件名,并将file.copy应用于该文件。