按R中的文件夹读取文件

时间:2014-01-09 13:41:32

标签: r import

我试图用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

有没有人知道这里有什么问题以及如何解决?

2 个答案:

答案 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)

只是为了说清楚......并正确地结束问题

问题是至少有一个文件为空。通过错误检查文件名。