Я хочу рассчитать различные типы трендов с помощью этого тестового кадра.
date_list = seq(ymd('2000-01-15'),ymd('2010-09-18'),by='day')
testframe = data.frame(Date = date_list)
testframe$Day = substr(testframe$Date, start = 6, stop = 10)
testframe$V1 = runif(3900, 2.0, 35.0)
testframe$V2 = runif(3900, 5.0, 40.0)
testframe$V3 = runif(3900, -10.0, 10.0)
testframe$V4 = seq(from = 5, to = 45, length.out = 3900)
У меня есть столбец Дата, который содержит точную дату.Столбец дней содержит извлеченные дни и месяцы, а затем у меня есть 4 столбца с разными значениями.
Я хочу сделать две разные вещи:
Рассчитать тренд значений каждого дня за годы.Таким образом, в конце концов, у меня есть только столбец, который каждый день (без лет), а затем наклон значений V1-V4 для каждого дня.Наклон должен быть рассчитан для каждого дня с 2000 по 2010 год.
То же, что и выше, но на этот раз я хочу рассчитать наклон не только для каждого дня, я также хочувзять среднее значение за 15 дней до и 15 дней после каждого дня.Таким образом, для наклона значений, например, 2000-02-01, я хочу иметь среднее значение всех значений от 2000-01-17 до 2000-02-16.После того, как у меня есть среднее значение этих дней, я хочу сделать то же самое, что и выше.
До сих пор я только пытался создать столбец "День", чтобы использовать его для команды aggregate
... но это никуда меня не привело.
ОБНОВЛЕНИЕ: Я нашел хороший пакет с именем TTR
, который содержит функцию скользящего среднего.Это то, что мне нужно.Я только не узнал, как использовать его для нескольких столбцов:
library(TTR)
mavg.15day = SMA(testframe$V1, n=15)
К сожалению, он использует только 15 дней до каждой даты.