web-dev-qa-db-ja.com

R複数の条件を持つファイルをリストする

特定の条件を満たす(日付と通貨)ディレクトリ内のすべてのファイルを一覧表示したい。したがって、1つの条件のみで、list.filesの引数patternは適切に機能します。

    file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern='20130801')

私が試した複数の条件について:

    file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern=c('20130801','USD'))

しかし、最初のものと同じ結果がありました。 list.filespattern引数に複数の基準を設定する方法はありますか?

27
capm
 Filter(function(x) grepl("USD", x), file.ls)

あるいは、両方の文字列を含むファイル名のみに一致するパターンの正規表現を作成することもできますが、これはウィザードのゲームです。

4
baptiste
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern="20130801|USD")
19
Metrics

Baptisteとこの投稿への回答( list.files pattern argument in R、extended regular expression use )に沿って、次の式を使用できます。

file.ls <- list.files(path='~/DATA/PiP/Curvas/',
pattern=glob2rx("*20130801*USD*"))

どこ *はワイルドカードです。

11
Dendrobates

ここにあります:

file.ls2 = intersect(list.files(pattern = "20130801"), list.files(pattern = "USD"))
3