Страница 1 из 1
батч-обработка текстовых файлов в R
Добавлено: 12 авг 2009, 22:33
Анна
добрые день всем,
скажите пожалуйста, а нет ли у кого примера на R для обработки в батч-режиме всех файлов в директории? не важно даже что именно скрипт делает, просто по сути - чтобы считывал список файлов из директории, читал поочередно в переменную, делал какую-то функцию и затем экспортировал результат тоже в текстовый файлик.
Буду очень благодарна за помощь и пример!
Re: батч-обработка текстовых файлов в R
Добавлено: 12 авг 2009, 22:38
Максим Дубинин
Код: Выделить всё
inputdir = "D:\\input\\"
#ищем все файлы c подстрокой "csv" в папке Input
trainingsets = list.files(path=inputdir, pattern="csv")
#создаём новый фрейм данных, куда будем записывать что-то
megasample = data.frame()
#поехали
for (i in 1:length(trainingsets)) {
#сформировали полное имя файла
afile = paste(inputdir,trainingsets[i],sep="")
#прочитали содержимое
adata = read.table(afile,sep=" ",strip.white=T)
#объединили построчно
megasample = rbind(megasample,adata)
#и так далее, пока есть файлы
}
Re: батч-обработка текстовых файлов в R
Добавлено: 12 авг 2009, 22:54
Анна
спасибо огромное!! а можно вопрос по скрипту?
что вот этой строкой достигается?
Re: батч-обработка текстовых файлов в R
Добавлено: 12 авг 2009, 22:58
Максим Дубинин
эта строка - это результат считывания вставляется в общий фрейм данных, т.е. например из 100 файлов делается один общий фрейм, я добавил для примера, разумеется делаться в цикле может что угодно
Re: батч-обработка текстовых файлов в R
Добавлено: 12 авг 2009, 23:03
Анна
спасибо! ну и последний вопрос

как экспортировать в текстовые файлы (отдельные) результаты обработки каждого файла?
еще раз огромное спасибо
Re: батч-обработка текстовых файлов в R
Добавлено: 12 авг 2009, 23:06
Максим Дубинин
Код: Выделить всё
inputdir = "D:\\input\\"
#ищем все файлы c подстрокой "csv" в папке Input
trainingsets = list.files(path=inputdir, pattern="csv")
#создаём новый фрейм данных, куда будем записывать что-то
megasample = data.frame()
#поехали
for (i in 1:length(trainingsets)) {
#сформировали полное имя файла
afile = paste(inputdir,trainingsets[i],sep="")
#прочитали содержимое файла
adata = read.table(afile,sep=" ",strip.white=T)
#здесь обработка начало
#...
#...
#здесь обработка конец
#сохраняем в ouput1.csv, цифра меняется
write.table(res,paste(inputdir,"output",i,".csv",sep=""),sep=",")
#и так далее, пока есть файлы
}