在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
是一个整数,而不是向量的第一个值。
我创建了一个小脚本,通过循环传递向量。在这个循环中,我使用 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
是一个整数,而不是向量的第一个值。