csv我的目录中有一堆文件。有些文件是空的。我可以使用以下代码删除空文件:
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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
您可以用来file.size测试哪些文件的长度为零并跳过它们。
CSV_Files = dir(pattern="*.csv")
CSV_Files[file.size(CSV_Files) > 0]
Run Code Online (Sandbox Code Playgroud)