我有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 {}
}
}
然而,它不起作用。在这种情况下对我有什么建议吗?非常感谢
答案 0 :(得分:1)
您可以使用lapply
在没有循环(尤其是嵌套循环)的情况下轻松完成此操作:
lapply(all_files[basename(all_files) %in% grdc_no],function(x) file.copy(x,"pathb"))
这将从all_files
索引文件,并在向量grdc_no
中使用匹配的文件名,并将file.copy
应用于该文件。