2012-01-26 14 views
13

Non riesco a trovare alcun esempio su come utilizzare il parametro pattern= in list.files per operazioni più complesse.Come eseguire espressioni regolari complesse in list.files in R

vorrei ottenere tutti i file che includono uno 'XM' o 'EM' e sono del tipo .cvs

favore qualcuno può aiutare.

Stavo cercando qualcosa di simile

list.files(path='.', pattern="[XM | EM] & csv")

ma è sicuramente sbagliato

risposta

13

provare questo:

list.files(path='.', pattern="(XM|EM).*\\.csv$") 
+0

Grazie, ma quella linea non funziona. Ciò che ha funzionato per me è questa riga: 'list.files (path = '.', Pattern =" (XM | EM). * \\. Csv $ ")' C'era qualche problema con l'escape del _dot_ con solo uno '\' – pedrosaurio

+2

Se Tom modifica correttamente la sua risposta con la doppia fuga, è necessario accettarla come risposta. Se si desidera utilizzare la sintassi regex compatibile con perl, è possibile utilizzare dir() [grepl ("pattern", dir(), perl = TRUE)] oppure utilizzare list.files invece di dir ma utilizzare allo stesso modo. – Hansi

+1

Ah, ho aggiornato la risposta grazie. – Tom