在R中的for循环中创建一系列新文件夹

Create a series of new folders in for loop in R

我创建了一个小脚本,通过循环传递向量。在这个循环中,我使用 if else 语句来检查文件夹是否存在,如果不存在则创建文件夹。但是,我收到错误消息:file.exists(i) 错误:'file' 参数无效。这必须归因于 file.exist()。我不明白为什么这不行。我检查使用帮助的人。看来这应该有效。

folders<- c("RawData", "Output", "BCV", "DEplots", "DEtables", "PathwayOuts", "VolcanoPLots")

for(i in 1:length(folders)){
   if (file.exists(i)){
      cat(paste0(i, "already exists"))
   } else {
      cat(paste0(i, "does not exists"))
      dir.create(i)
   }
}

您正在遍历索引(也就是说,1:length(folders) 只是向量 1:7,而不是 folders 向量本身的值。最简单的解决方案是循环矢量本身:

for (i in folders) {

或者,如果您仍想遍历索引:

for (i in 1:length(folders)) {
    if (file.exists(folders[i])){
      cat(paste0(folders[i], "already exists"))
    }
    else {
      cat(paste0(folders[i], "does not exists"))
      dir.create(folders[i])
    }
}

快速提示:如果您正在调试 for-loop,开始的地方是在循环的开头添加 print(i)。您会立即看到问题:i 是一个整数,而不是向量的第一个值。