我试图用R读取文件夹中的所有文件,但我总是遇到这样的错误:
>folder<-"/Volumes/cphg/projects/PROVIDE/freeze" #working directory
>filelist<-list.files(folder) #all files in the directory
>data<-vector("list", length(filelist)) #empty list
>names(data)<-filelist
>for (name in filelist) {
+ data[[name]]<-read.table(paste(folder, name, sep="/"), header=T)
+}
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
有没有人知道这里有什么问题以及如何解决?
答案 0 :(得分:4)
如果读取文件失败,您可以使用tryCatch
并返回NULL。然后你可以Filter
结果排除NULL
L <- setNames(lapply(filelist, function(x) {
tryCatch(read.table(file.path(folder, name)), error=function(e) NULL)
}), filelist)
data <- Filter(NROW, L)
答案 1 :(得分:0)
只是为了说清楚......并正确地结束问题
问题是至少有一个文件为空。通过错误检查文件名。