R 循环列出零件中的文件

R 循环列出零件中的文件,r,for-loop,R,For Loop,我正在尝试复制大约10000个文件,并使用以下代码将其粘贴到另一个目录中: f <- c (MYFILE $ COL1) # PART 1 m <- paste0 ("(", paste (f, collapse = "|"), ") .xml") #PART 2 files <- list.files (pattern = m) #PART 3 file.copy (paste0 (getwd (), "/", files), paste0 (getwd (), "/ FI

我正在尝试复制大约10000个文件,并使用以下代码将其粘贴到另一个目录中:

f <- c (MYFILE $ COL1) # PART 1
m <- paste0 ("(", paste (f, collapse = "|"), ") .xml") #PART 2
files <- list.files (pattern = m) #PART 3

file.copy (paste0 (getwd (), "/", files), paste0 (getwd (), "/ FILES_XML /", files), overwrite = TRUE) # PART 4

为了防止消息出现,我考虑在500个部分中以500个部分运行代码。如何使用
for
在部分中执行此操作?

即使我不理解您的推理,这将如何避免出现错误消息(?)下面是如何在循环中运行file.copy部分:

lower <- 1
for (upper in seq(500, 10000, by=500)) {
  file.copy(paste0(getwd (), "/", files[lower:upper]), paste0 (getwd (), "/ FILES_XML /", files[lower:upper]), overwrite = TRUE)
  lower <- upper + 1
}

lower即使我不理解您的推理,这将如何避免出现错误消息(?)下面是如何在循环中运行file.copy部分:

lower <- 1
for (upper in seq(500, 10000, by=500)) {
  file.copy(paste0(getwd (), "/", files[lower:upper]), paste0 (getwd (), "/ FILES_XML /", files[lower:upper]), overwrite = TRUE)
  lower <- upper + 1
}

lower这是一个regex错误,可能来自
文件这是一个regex错误,可能来自
文件行,可能类似于下面的操作。
注意使用
帮助(“file.path”)
替换
粘贴

n <- length(f)
sp <- rep(1:ceiling(n / 5), each = 5, length.out = n)
lapply(split(f, sp), function(x){
  m <- paste0 ("(", paste (x, collapse = "|"), ")\\.xml")
  files <- list.files(pattern = m)
  infiles <- file.path(getwd(), files)
  outfiles <- file.path(getwd(), "FILES_XML", files)
  file.copy(infiles, outfiles, overwrite = TRUE)
})

n也许像下面这样的东西就可以了。
注意使用
帮助(“file.path”)
替换
粘贴

n <- length(f)
sp <- rep(1:ceiling(n / 5), each = 5, length.out = n)
lapply(split(f, sp), function(x){
  m <- paste0 ("(", paste (x, collapse = "|"), ")\\.xml")
  files <- list.files(pattern = m)
  infiles <- file.path(getwd(), files)
  outfiles <- file.path(getwd(), "FILES_XML", files)
  file.copy(infiles, outfiles, overwrite = TRUE)
})

谢谢。您的建议指的是最后一部分(file.copy),但问题发生的时间稍早(文件,谢谢)。您的建议指的是最后一部分(file.copy),但问题发生的时间稍早(文件谢谢。你的建议奏效了,但过程非常缓慢。看看情况如何,在我需要复制的10000个文件中,我只在20分钟内复制了40个。@BrunoAvila我无法解释为什么速度如此之慢,每个文件平均30秒。文件大小是多少?你考虑过使用操作系统命令吗?R function
system2
可能更快,但我需要知道操作系统。我的文件很小,最大300kb。谢谢。你的建议奏效了,但过程非常缓慢。看看情况如何,在我需要复制的10000个文件中,我只在20分钟内复制了40个。@BrunoAvila我无法解释为什么它这么慢,每个文件平均30秒。文件大小是多少?你考虑过使用操作系统comman吗ds?R函数
system2
可能更快,但我需要了解操作系统。我的文件很小,最大为300kb