2017-12-13 5 views
1

csvファイルがディレクトリにあります。一部のファイルは空です。私は、次のコードを使用して空のファイルを削除することができます。ディレクトリ内の空のcsvファイルをスキップまたは無視する - R

Delete empty csv files in directory - R

setwd('C:/Users/mmiller/Documents/simple R programs/') 
my.folder <- paste0(getwd(), '/', 'empty_csv_files/') 
setwd(my.folder) 
my.delete.empty.csv = lapply(Filter(function(x) countLines(x)==0, list.files(pattern='.csv')), unlink) 
my.model.files <- list.files(my.folder, pattern="^model.*?\\.csv") 
my.model.list <- lapply(paste0(my.folder, my.model.files), read.csv) 
my.model.data <- do.call(rbind, my.model.list) 

しかし、このコードは、物理的に除去(すなわち、破壊)空csvファイルをディレクトリから。ファイルを破棄するのではなく、空のファイルcsvを単にスキップまたは無視する方法はありますか?私はファイルを破壊するのが少し不快であると感じています。これは、すべてのステップをクリアして準備した記録を削除するように見えるためです。私は、例えば、どれだけのファイルが破壊されたかをすぐには知りません。ここで

は( model3.csvが空だった)私は、この例で使用されるファイルの内容は以下のとおりです。あなたは長さゼロを持っているし、それらをスキップしたファイルをテストするために file.sizeを使用することができます

model1.csv 
var1 
1 
2 
3 

model2.csv 
var1 
10 
20 
30 

model3.csv 

model4.csv 
var1 
100 
200 
300 

model5.csv 
var1 
1000 
2000 
3000 

答えて

2

CSV_Files = dir(pattern="*.csv") 
CSV_Files[file.size(CSV_Files) > 0] 
関連する問題