2015-06-20 3 views
1

Мне нужно выбрать все файлы внутри папки в формате .csv, который содержит только числовые символы.Выбор files.csv в R

Я использую следующий код, но он выбирает только 9 файлов из 13 с выбранным шаблоном. Это правильно?

Я выбираю файлы как Berlin.csv

filenames <- list.files(pattern="[:alpha:].csv", full.names=TRUE) 
ldf <- lapply(filenames, read.csv, header = FALSE) 
length(ldf) 
ldf 

ответ

4

Вы хотите что-то вроде:

list.files(pattern = "^[[:alpha:]]+\\.csv") 

Этот шаблон будет соответствовать любой CSV, который начинается с и содержит только буквенные символы. Но, если вы хотите, чтобы имена файлов с другими не-буквенных символов (например, пробелы, знаки препинания), использовать что-то вроде этого:

list.files(pattern = "^[^[:digit:]]+\\.csv") 

Это будет просто исключить любые имена файлов, которые имеют ряд в них. (Обратите внимание на два разных значения: ^ при использовании внутри и снаружи класса символов.)

+0

Thomas спасибо, один вопрос, что он делает^и +? –

+0

@EnricAgudPique '^' в начале регулярного выражения в этом контексте означает «начало имени файла»; внутри символьного класса ('[^]') это означает отрицание (поэтому второй пример означает «не соответствующие цифры». «+» означает «один или несколько» из предыдущих символов (так, в первом примере регулярное выражение соответствует одному или нескольким алфавитным символам от начала имени файла до расширения файла). – Thomas

+0

Понял Томас –