首页 > 解决方案 > R循环根据数据框中的值将文件复制到不同的文件夹中

问题描述

我想编写一个简单的循环,它将创建文件夹(.jpg)中所有图像的副本,并根据表中的值将它们分类到不同的文件夹中。

例如,如果我有三张图像并想根据下表将它们移动到文件夹中: 在此处输入图像描述

我可以使用读取文件

files <- list.files(dir, pattern="*.JPG", full.names=TRUE, recursive=FALSE)

但我可以使用一些帮助编码循环,该循环将使用条件语句使用“目标”列中的相应字符串创建新文件夹中的文件副本,该字符串对应于“组”因子。

这类似于这个问题这个问题,但不同之处在于我想复制图像并根据表中的值重命名它们,而不是循环遍历多个表。

先感谢您!!

标签: rloopsimage-processing

解决方案


非常感谢@Gregor Thomas,这就是我想出的:

dir <- "C:/path"

setwd(dir)
data <- read.csv("key.csv")

subfolder_names <- data$destination
for (j in 1:length(subfolder_names)){
  folder<-dir.create(paste0(dir,subfolder_names[j]))
}

files <- list.files(dir, pattern="*.JPG", full.names=TRUE, recursive=FALSE)

file.copy(from = file.path(files), to = file.path(data$destination, data$name))

推荐阅读