跳过或忽略目录中的空csv文件 - R.

时间:2017-12-13 23:09:57

标签: r csv

我在目录中有一堆csv个文件。有些文件是空的。我可以使用以下代码删除空文件:

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为空):

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

1 个答案:

答案 0 :(得分:3)

您可以使用file.size来测试哪些文件的长度为零并跳过这些文件。

CSV_Files = dir(pattern="*.csv")
CSV_Files[file.size(CSV_Files) > 0]