2016-11-03 6 views
0

フォルダ内にたくさんのファイルがあり、その多くは空であり、他は空のデータです。空のファイルと空のファイルを含むリストを作成する

#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) 
    } 
}) 

@nurcellと私の違いは、私がcにしたいことです空のファイルのリストと、空ではないファイルのリストを再作成します。私はいくつのファイルが空で、どれくらいが空でないか知りたいです。

+0

なぜ、 'apply'関数を使って2つの異なるベクトルにファイルを格納しないのですか? –

+0

@EliSadoffそれは間違いでした、申し訳ありません。私は2つの異なるベクトルに格納しています。 – Enrique

+0

これを行う:list.of.files < - file.info(dir()) サイズ< - file.info(dir())$ size list.of.non.empty.files < - rownames(list。 of.files)[which(sizes!= 0)]そして、もちろん、空でないファイルのリストから読み込む必要があります。 list.of.empty.files < - rownames(list.of.files) [which(sizes == 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)] 
+0

ありがとう!それは完全に機能します。 – Enrique

関連する問題