2015-08-17 4 views
0

У меня есть цикл, проходящий через список переменных (в csv), доступ к базе данных и извлечение соответствующих данных. Он делает это в течение 4 разных периодов времени (которые зависят от переменных).R - Запись данных в CSV в цикле

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

Я бы хотел, чтобы все данные для этих переменных за один период все были в одном файле/листе. (Таким образом, либо 4 листа, либо 4 файла csv со всеми данными на них). Это потому, что мне нужно сделать некоторые манипуляции с данными по переменным, прежде чем я буду их кормить в следующий цикл скрипта.

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

date/time | var1 | var2 | ... | varn 

Я бы опубликовал код, но даже опубликовал соответствующий цикл, и ни один из окружающего кода не будет ~ 150 строк. Я не знаком с R (я могу следить за сценарием, но борюсь писать свои собственные), я унаследовал этот проект и не долго работать над ним.

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

EDIT: Я надеюсь, что я объяснил это достаточно ясно

+1

Вы пробовали write.csv (..., append = T)? – Henk

+0

Что сказал @Henk. Кроме того, вы можете использовать соединения, чтобы избежать накладных расходов при открытии/закрытии каждый раз. –

+0

Вы пытаетесь написать все в один файл или четыре разных файла? Возможно, вы можете опубликовать только код, который записывается в файл, а не часть чтения данных. – Heroka

ответ

0

Четыре различных .csv файлов будет проще всего, потому что вы могли бы сделать что-то вроде следующего в цикле:

outfile.name <- paste('Sales', year.of.data, sep='') 
write.csv(outfile.name, out.filepath, row.names=FALSE) 

Вы также можете добавьте данные в один файл data.frame, а затем экспортируйте все сразу в один лист. Вы не сможете экспортировать несколько листов для CSV, потому что CSV не позволит вам иметь несколько листов.

+0

Понятно, 4 файла. Я не знаю, как я буду добавлять его к фреймворку данных, будет ли это соответствовать совпадению точек данных? – GK95

+0

Если все файлы отформатированы одинаково с одинаковыми именами переменных, вы можете их прочитать и переписать (т. Е. Добавить или уложить их). Если вам нужно больше деталей, я бы отредактировал ваше сообщение, чтобы включить некоторые ваши данные (используя dput). Также, добро пожаловать в SO - если вы найдете ответ полезным, upvote будет оценен, и если он в конечном итоге решит вашу проблему, вы можете отметить ее как правильную. – Tchotchke

+0

Это почти есть, однако есть пробелы в данных (разные частоты дискретизации), и в настоящее время они обрабатывают данные для заполнения пробелов (например, только 10 элементов данных для одной переменной, по сравнению с 60 для другой, затем эти 10 повторяются 6 раз) Я думаю, если бы я смог сопоставить временные штампы каким-то образом, я мог бы избежать этого? – GK95

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