2012-01-26 28 views
13

Tôi không thể tìm thấy bất kỳ ví dụ nào về cách sử dụng thông số pattern= trong list.files cho các thao tác phức tạp hơn.Cách thực hiện các cụm từ thông dụng phức tạp trong list.files trong R

Tôi muốn để có được tất cả các file bao gồm một trong hai 'XM' hoặc 'EM' và là loại .cvs

Ai đó có thể vui lòng giúp tôi.

Tôi đã cố gắng một cái gì đó giống như

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

nhưng nó chắc chắn là sai

Trả lời

13

thử điều này:

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

Cảm ơn, nhưng dòng đó không hoạt động. Những gì làm việc cho tôi là dòng này: 'list.files (path = '.', Pattern =" (XM | EM). * \\. Csv $ ")' Đã xảy ra sự cố khi thoát _dot_ bằng chỉ có một '\' – pedrosaurio

+2

Nếu Tom chỉnh sửa câu trả lời của mình một cách chính xác bằng cách thoát kép, bạn nên chấp nhận câu trả lời đó. Nếu bạn muốn sử dụng cú pháp regex tương thích perl, bạn có thể dùng dir() [grepl ("mẫu", dir(), perl = TRUE)] hoặc gắn với list.files thay vì dir nhưng sử dụng theo cách tương tự. – Hansi

+1

Ah, tôi đã cập nhật câu trả lời cảm ơn. – Tom

Các vấn đề liên quan