在R中按文件夹读取文件

在R中按文件夹读取文件,r,import,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)<-file

我试图使用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
(文件列表中的名称)的folderfilelistdatanames(数据){
+数据[[name]]只是为了澄清……并正确地结束问题


问题是至少有一个文件是空的。当它通过错误时,请检查文件名。

只是为了弄清楚…并正确地结束问题


问题是至少有一个文件是空的。当它通过错误时,请检查文件名。

您可以使用
tryCatch
并在读取文件失败时返回NULL。然后您可以
过滤
结果以排除NULL

L <- setNames(lapply(filelist, function(x) {
  tryCatch(read.table(file.path(folder, name)), error=function(e) NULL)
}), filelist)
data <- Filter(NROW, L)

L您可以使用
tryCatch
并在读取文件失败时返回NULL。然后您可以
筛选结果以排除NULL

L <- setNames(lapply(filelist, function(x) {
  tryCatch(read.table(file.path(folder, name)), error=function(e) NULL)
}), filelist)
data <- Filter(NROW, L)

L你有空文件吗?刚刚检查,72个文件中有4个是空的获取它停止的文件的名称,看看这个文件,可能是某种奇怪的格式或它是空的。你有空文件吗?刚刚检查,72个文件中有4个是空的获取它停止的文件的名称,看看这个文件,可能是一些奇怪的文件rmat或者它是空的好主意,但可能更好地知道它在某些文件中失败了。好主意,但可能更好地知道它在某些文件中失败了。