2012-01-26 19 views
13

Nie mogę znaleźć żadnego przykładu użycia parametru pattern= w list.files dla bardziej złożonych operacji.Jak wykonywać złożone wyrazy regularne w pliku list.files w R

Chciałbym uzyskać wszystkie pliki, które zawiera albo „XM” lub „em” i są typu .cvs

Czy ktoś mógłby mi pomóc.

Próbowałam coś

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

ale jest zdecydowanie źle

Odpowiedz

13

spróbuj tego:

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

Dzięki, ale że linia nie działa. To, co zadziałało dla mnie, to: 'list.files (path = '.', Pattern =" (XM | EM). * \\. Csv $ ")' Wystąpił problem z ucieczką _dot_ z tylko jeden '\' – pedrosaurio

+2

Jeśli Tom prawidłowo poprawi odpowiedź, używając podwójnej ucieczki, powinieneś zaakceptować to jako odpowiedź. Jeśli chcesz używać składni regex zgodnej z Perlem, możesz użyć dir() [grepl ("pattern", dir(), perl = TRUE)] lub trzymać z list.files zamiast dir, ale używać w taki sam sposób. – Hansi

+1

Ah, zaktualizowałem odpowiedź dzięki. – Tom

Powiązane problemy