创建一个包含空文件的列表和一个非空文件的列表

时间:2016-11-03 14:06:52

标签: r dataframe lapply

我在一个文件夹中有很多文件,其中很多都是空的,而其他文件里面有数据。

我想做的是:

#Load all data in a list
file_all <- list.files(file.path(getwd(), "testall"), pattern = "\\.txt$") 

使用此列表,我尝试使用@nrussell How to skip empty files when importing text files in R?

解释的方法跳过空文件
library(plyr)
df_list <- lapply(files, function(x) {
    if (!file.size(x) == 0) {
        list.files(x)
    }
})

而且(不是空文件)

    df_list2 <- lapply(files, function(x) {
    if (file.size(x) == 0) {
        list.files(x)
    }
})

@nrussell和我之间的区别在于我想创建一个空文件列表和另一个非空文件列表。我想知道有多少文件是空的,有多少文件不是空的。

1 个答案:

答案 0 :(得分:2)

# create a list of files in the current working directory
list.of.files <- file.info(dir())

# get the size for each file
sizes <- file.info(dir())$size

# subset the files that have non-zero size
list.of.non.empty.files <- rownames(list.of.files)[which(sizes != 0)]

# here you can further subset that list by file name, eg - if I only want all the files with extension .mp3
list.of.non.empty.files[grep( ".mp3", list.of.non.empty.files)]


# get the empty files
list.of.empty.files <- rownames(list.of.files)[which(sizes == 0)]