要做到這一點,最簡單的方法是添加使用try
一個簡單的錯誤醒目的機制:
datalist<-lapply(filenames,function(name){
x <- try(read.table(paste("M:/files/test1/",name,sep=""),head=FALSE,stringsAsFactors=FALSE,sep="\t"))
if(inherits(x, "try-error"))
return(NULL)
else
return(x)
})
要看到這個動作,嘗試一個玩具的例子。什麼try
確實是返回對象,或在錯誤的情況下,包含錯誤的詳細信息的特殊對象類:
x <- try(stop("Test error"))
inherits(x, "try-error")
x
# [1] "Error in try(stop(\"Test error\")) : Test error\n"
# attr(,"class")
# [1] "try-error"
# attr(,"condition")
# <simpleError in doTryCatch(return(expr), name, parentenv, handler): Test error>
對戰,如果你簡單介紹一個錯誤,而不try
程序將停止,x
將是不確定的:
rm(x)
x <- stop("Test error")
# Error: Test error
x
# Error: object 'x' not found
如果裏面的操作try()
成功,它只是簡單地返回正確的對象:
x <- try(1)
x
# [1] 1
文件大小謝謝!!也許我沒有清楚地描述我的問題!文本文件存在,但文本文件的內容爲空白。我只是想知道如何在read.table中使用read.table – Cheng 2015-04-06 08:54:58
'錯誤時跳過這些類型的空白文件(way,head = FALSE,stringsAsFactors = FALSE,sep =「\ t」):' no line available in輸入@Pascal – Cheng 2015-04-06 08:56:00