2013-05-29 3 views
0

У меня есть несколько файлов в одной папке, и я хотел бы выполнять одно и то же действие с каждым файлом, используя R, без изменения имени файла в моем скрипте каждый раз. В частности, у меня есть 26 файлов .csv, которые мне нужно идентифицировать повторяющиеся записи в отдельности. Любые советы по наилучшему способу сделать это приветствуются.Выполнение такого же действия для нескольких файлов

ответ

5

Я хотел бы использовать list.files внутри lapply. Например, я думаю, что-то вроде этого, это хорошее начало:

res <- lapply(list.files(path=FILES_DIRECTORY, 
           pattern='*.csv', ## I look for csv files, 
           full.names=T), ## to get full names path+filename 
        function(file){ ff <- read.csv(file) 
            ff[duplicated(ff),] 
        }) 

Вы можете также назвать получившийся список с именами файлов.

names(res) <- gsub('[.]csv','', 
         list.files(path=FILES_DIRECTORY,pattern='*.csv')) 
+0

Я считаю, что вы могли бы избежать того, чтобы назвать список в отдельную команду, если вы используете '' sapply' с USE.NAMES = TRUE, вместо 'lapply'. –

+0

@MatthewPlourde да, вы можете использовать 'sapply' здесь, даже если вы не получите красивое имя (вы получите полные имена путей). Лично я редко использую 'sapply', и я предпочитаю использовать' lapply'. – agstudy

+1

Замечательно, я не могу дождаться, чтобы попробовать. Спасибо вам за помощь. – KES

Смежные вопросы