我正在尝试将数千个.csv文件读入列表。文件以运行数字命名,f.ex。 file1.csv,file2.csv。有时文件不存在。如果它不存在,我想为列表中的该元素分配一个占位符向量rep(NA,9)
。我尝试过以下循环:
file.numbers = 1:2000
data = list()
for (i in 1:2000) {
tryCatch(
data[[i]] = read.csv((paste("file", file.numbers[i], sep = ""))),
error=function(e){data[[i]] = rep(NA,9)}
)
}
让我们说file1052.csv不存在。我想data[[1052]] = rep(NA,9)
,但上面的循环给了我data[[1052]] = NULL
。怎么办?
答案 0 :(得分:0)
您可以使用file.exists
file.numbers = 1:2000
data = list()
for (i in 1:2000) {
filename <- paste("file", file.numbers[i],".csv", sep = "")
if(file.exists(filename)){
data[[i]] = read.csv(filename)
} else {
data[[i]] = rep(NA,9)
}
}
答案 1 :(得分:0)
尝试:
for (i in 1:2000) {
csv.i <-
tryCatch(read.csv(paste("file", file.numbers[i], sep = "")),
error=function(e){rep(NA,9)}
)
data[[i]] <- csv.i
}