Я новичок в R и изучил несколько сообщений и веб-сайтов о временных рядах и скользящем среднем усвоении, но просто не могу найти полезный намек, который усредняет особый период времени.R: Очень простой пример для усреднения временных рядов
Мои данные представляют собой таблицу через readcsv с датой и временем в одном столбце и несколькими другими столбцами со значениями. Временные шаги в данных не постоянны, поэтому иногда 5 минут, иногда 2 часа. Например.
2014-01-25 14:50:00, 4, 8
2014-01-25 14:55:00, 3, 7
2014-01-25 15:00:00, 1, 4
2014-01-25 15:20:24, 12, 34
2014-01-25 17:19:00, 150, 225
2014-01-25 19:00:00, 300, 400
2014-01-25 21:00:00, NA, NA
2014-01-25 23:19:00, 312, 405
Так я смотрю на осреднения сюжет, который
- вычисляет средние данные в произвольных интервалов, как 30 минут, 1 час, 1 день и т.д. Таким образом, нижние ступени должны быть агрегированными и выше шаги должны дезагрегироваться.
- (удалено, так как тривиально получить значение в час из временного ряда D, усредненного на X часов с D/x.)
- данные, помеченные как NA, не должны приниматься во внимание. Таким образом, функция не должна интерполировать/сглаживать пробелы Na, а выполнение линейного графика не должно связывать точки между разрывом NA с линией.
Я уже пытался
aggregate(list(value1=data$value1,value2=data$value2), list(time=cut(data$time, "1 hour")), sum)
, но это не удовлетворяет потребности 1 и 3, и не в состоянии детализировать 2-часовые действия данных.
Можете ли вы поднять образец вашей информационной рамки или ссылку на данные? – John
Можете ли вы определить «значение в час» и объяснить, как это отличается от среднего? Что касается пункта 3, большинство функций «R» имеют аргумент 'na.rm' или' na.omit', который удаляет «NA» из расчета, но неясно, что вы подразумеваете под «не соединять точки». –
Я попытался объяснить больше в этом редактировании. Выполнение простого среднего не суммирует/дезагрегирует должным образом, когда временные шаги не являются постоянными. – Martin