将文件夹中的文件名与R中的文件名列表进行匹配

时间:2017-06-12 17:22:55

标签: r

我有一个文本格式的文件名列表,只是文件名而不是文件夹中的物理文件。例如......

   ECGVW103899_wholecaseRRiQTi.rr
   ECGVW104077_wholecaseRRiQTi.rr
   ECGVW104081_wholecaseRRiQTi.rr
   ECGVW104121_wholecaseRRiQTi.rr
   ECGVW104182_wholecaseRRiQTi.rr
   .
   .
   .

我有一个包含文件列表的文件夹。这些文件包括我在上面指出的列表中的名称(以及一些其他文件)。我需要将文件夹中的其他文件移动到单独的文件夹中。有什么建议?

1 个答案:

答案 0 :(得分:1)

这样的事情可能会为您提供您正在寻找的结果。

files.to.keep <- c("ECGVW103899_wholecaseRRiQTi.rr",
                   "ECGVW104077_wholecaseRRiQTi.rr",
                   "ECGVW104081_wholecaseRRiQTi.rr",
                   "ECGVW104121_wholecaseRRiQTi.rr",
                   "ECGVW104182_wholecaseRRiQTi.rr")

source.path <- # Path to file source folder
destination.path <- # Path to file destination folder

# Create destination folder if it does not exist
ifelse(!dir.exists(destination.path), dir.create(destination.path), FALSE)

# Get list of files in source folder
filenames <- list.files(source.path)

# Move files that are not in files.to.keep to the destination folder
lapply(filenames, function(x) 
                    if(!(x %in% files.to.keep))
                      {file.rename(from = file.path(source.path,x),to = file.path(destination.path,x))})