2013-08-03 39 views
13

我想列出符合特定條件(日期和貨幣)的目錄中的所有文件。所以,只有一個條件參數patternlist.files效果很好:具有多個條件的R列表文件

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

多個條件我已經試過:

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

但有相同的結果作爲第一個。有沒有一種方法可以在pattern參數list.files中有多個標準?

回答

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

或者,你可以構建模式,只有匹配包含兩個字符串的文件名正則表達式,但是這是一個巫師的比賽。

+0

它工作的很好,但我希望在'pattern'參數中解決它,而不是添加另一行,但我認爲你是最好的解決方案。 – capm

+0

OP沒有要求第二條線適用於第一條的結果......所以不可能在一條線上做? (並不是說這不是最好的解決方案) –

13
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern="20130801|USD") 
+1

此命令按貨幣對它們進行過濾,結果是一個字符串,其中包含名稱中包含USD的文件,但不會按日期進行過濾。 – capm

+1

豎線表示「或」,因此所有文件都會返回,它們與日期和/或貨幣相匹配。如何過濾兩種情況? – Dendrobates

+1

不起作用,用'&'替換字符(0) –