2013-08-03 19 views
13

Desidero elencare tutti i file in una directory che soddisfano determinate condizioni (data e valuta). Quindi, con una sola condizione l'argomento pattern in list.files funziona bene:R file di elenco con condizioni multiple

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

Per più condizioni ho provato:

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

ma ha avuto lo stesso risultato come il primo. C'è un modo per avere più criteri nell'argomento pattern di list.files?

risposta

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

In alternativa, si potrebbe costruire un'espressione regolare per il modello di quello che soddisfa solo i nomi dei file che contengono entrambe le stringhe, ma questo è il gioco di una procedura guidata.

+0

Funziona bene, ma speravo di risolverlo nell'argomento 'pattern' invece di aggiungere un'altra riga, ma penso che la tua sia la soluzione migliore. – capm

+0

OP non ha chiesto una seconda riga da applicare al risultato del primo ... quindi è impossibile fare in una riga? (non dicendo che non è la soluzione migliore) –

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

Questo comando li filtra per valuta, il risultato è una stringa con i file che contiene USD nel nome, ma non filtra per la data. – capm

+1

La barra verticale significa "o", quindi vengono restituiti tutti i file che corrispondono alla data e/o alla valuta. Come filtrare su entrambe le condizioni? – Dendrobates

+1

non funziona, sostituendo con '&' yields character (0) –

Problemi correlati