2017-04-07 10 views
1

私は以下の行を使って1つのテキストファイルを読む。しかし、テキストファイルのリストを読み込むためにはインクルードする必要がありますが、すべてを読み込む必要はありません。 Rでこれをどのように達成できますか?名前の一部に基づいてRのテキストファイルのリストを読む

C:/ dataパスに複数のフォルダがあります。すなわち、 1998_Data、1999_Data ....など、各フォルダにはテキストファイル01.txt ... 49.txtがあります。

ありがとうございます。

startingDir<-"C:/Data" 
files <- list.files(path = startingDir,pattern = "24.txt",recursive=T,full.names=T) 

私は以下の行を追加しましたが、リスト内の3つのファイルすべてを読み取るわけではありません。 提案がありますか? patternは、正規表現を期待ためだ

my_files <- c("24.txt","01.txt","10.txt") 
files <- list.files(path = startingDir,pattern = my_files,recursive=T,full.names=T) 

答えて

2

thepattern <- "24\\.txt|01\\.txt|10\\.txt" 
files <- list.files(path = startingDir, 
        pattern = thepattern, 
        recursive=TRUE, 
        full.names=TRUE) 

は、それがそうでない場合は、「何でも」と解釈されて、あなたが、ドットをエスケープする必要がある点に注意してください。あなたはこれを自動化する場合は、次の操作を行うことができます

my_files <- c("24.txt","01.txt","10.txt") 
my_files <- gsub(".","\\.",my_files, fixed = TRUE) 
my_pattern <- paste(my_files, collapse = "|") 

あなたは「何でも」と読むべきドットを避けるためにgsubfixed = TRUEを必要としています。また、?regex

+0

ありがとうございます。あなたの上記の解決策は動作しているようです。しかし、オートメーション用のコードは機能しません。すべてのファイルを読み込むのではなく、リストの最初のテキストファイルを読み込むだけです。 – user3408139

+0

@ user3408139私の悪い、私は '崩壊'の代わりに 'sep'を使いました。正しい正規表現を作成するようにコードを更新しました。 –

+0

偉大な..今働いている。ありがとう。 – user3408139

関連する問題