Rで空のCSVファイルを読み込むとエラーが出てしまう場合の対処方法
例えば、複数のCSVファイルがあって、それをまとめて処理したいとしましょう。 "001.csv"は、 taro,60 hanako,100 ichiro,90 ... "002.csv"は jiro,50 keiko,70 ... みたいな感じでたくさんのCSVファイルがあって、それぞれを集計したいとか、全部をマージしたいとか、そんな場合。 以下のようなコードで処理しようとするんじゃないでしょうか、 files <- dir ( pattern= " \\ .csv" ) for ( f in files ) { data <- read.csv ( f , header=F ) # このあとデータを集計するような処理 } 普通は上記でうまくいくんですが、たまに変なファイルが混じってたりする。 例えば、空のCSVファイルとか。 すると、 以下にエラー read.table(file = file, header = header, sep = sep, quote = quote, : 入力中には利用可能な行がありません というエラーメッセージが出て、処理が中断してしまいます。 人名と点数のデータみたいなものだと空のファイルなんてのは考えにくいですが、「複数の画像から顔検出して、検出位置の座標をCSVで出力」みたいな場合だと、不検出の場合は空のファイルができあがっている、なんてことはよくあります。 そういう場合の対処方法としては、try関数を使うと便利です。 for ( f in files ) { # read.csvでエラーが出たかどうかはresに設定される res <- try ( data <- read.csv ( f , header=F ) , silent=T ) if ( class ( res ) != "try-error" ) { # エラーが出なかったので、分析処理を続ける # ....