батч-обработка текстовых файлов в R

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

батч-обработка текстовых файлов в R

Сообщение Анна » 12 авг 2009, 22:33

добрые день всем,

скажите пожалуйста, а нет ли у кого примера на R для обработки в батч-режиме всех файлов в директории? не важно даже что именно скрипт делает, просто по сути - чтобы считывал список файлов из директории, читал поочередно в переменную, делал какую-то функцию и затем экспортировал результат тоже в текстовый файлик.
Буду очень благодарна за помощь и пример!

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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)
        #и так далее, пока есть файлы
}
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Re: батч-обработка текстовых файлов в R

Сообщение Анна » 12 авг 2009, 22:54

спасибо огромное!! а можно вопрос по скрипту?

Код: Выделить всё

megasample = rbind(megasample,adata) 
что вот этой строкой достигается?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: батч-обработка текстовых файлов в R

Сообщение Максим Дубинин » 12 авг 2009, 22:58

эта строка - это результат считывания вставляется в общий фрейм данных, т.е. например из 100 файлов делается один общий фрейм, я добавил для примера, разумеется делаться в цикле может что угодно
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Re: батч-обработка текстовых файлов в R

Сообщение Анна » 12 авг 2009, 23:03

спасибо! ну и последний вопрос :) как экспортировать в текстовые файлы (отдельные) результаты обработки каждого файла?
еще раз огромное спасибо

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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=",")
        #и так далее, пока есть файлы
}
пристегивайтесь, турбулентность прямо по курсу

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя