如何创建一系列文件夹(0-48),并将文件移动到相应的新文件夹r中



我需要制作一系列标签为pt-01: pt-48的文件夹。然后,我需要将所有相应的参与者文件移动到新文件夹中。

目前所有文件(每个ppt 10个)都在一个文件夹中,并且在每个文件名的某个地方包含ppt编号。例如XX01_040_xxx6_9其中040为ppt编号。

我首先尝试使用for循环创建一个文件夹名称列表,但我不知道如何保存输出

setwd("P:/data")
for (i in 1:48){
print(paste0("ppt-0", i))
}

**所以我使用了lapply **

x = (1:48)
fun <- function(x){
paste0("ppt-0", x)
}
output <- lapply(x, fun)
output
path <- "data"
dir.create(output)

我打算试着列出。文件,然后使用for循环或lapply/或if语句将文件移动到相应的文件夹中,但我不太确定如何实现这一点。

这不起作用,我不确定还能尝试什么-任何帮助将非常感激。

您可以使用它来创建文件夹

for (i in 1:48){
if(i < 10)
dir.create(paste0("ppt-0", i))
else dir.create(paste0("ppt-", i))
}

然后移动文件

for (f in list.files("path to your files")){
n <- gsub('^_0(\d+)_', '\1', stringr::str_extract(f, '_\d+_'))
to <- paste0("ppt-0", n)
file.copy(from = paste0('path to your files', f),
to   = paste0('path to your folder data', to))
}

相关内容