R Тенденция дней за несколько лет - PullRequest
0 голосов
/ 12 июня 2019

Я хочу рассчитать различные типы трендов с помощью этого тестового кадра.

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 столбца с разными значениями.

Я хочу сделать две разные вещи:

  1. Рассчитать тренд значений каждого дня за годы.Таким образом, в конце концов, у меня есть только столбец, который каждый день (без лет), а затем наклон значений V1-V4 для каждого дня.Наклон должен быть рассчитан для каждого дня с 2000 по 2010 год.

  2. То же, что и выше, но на этот раз я хочу рассчитать наклон не только для каждого дня, я также хочувзять среднее значение за 15 дней до и 15 дней после каждого дня.Таким образом, для наклона значений, например, 2000-02-01, я хочу иметь среднее значение всех значений от 2000-01-17 до 2000-02-16.После того, как у меня есть среднее значение этих дней, я хочу сделать то же самое, что и выше.

До сих пор я только пытался создать столбец "День", чтобы использовать его для команды aggregate ... но это никуда меня не привело.

ОБНОВЛЕНИЕ: Я нашел хороший пакет с именем TTR, который содержит функцию скользящего среднего.Это то, что мне нужно.Я только не узнал, как использовать его для нескольких столбцов:

library(TTR)
mavg.15day = SMA(testframe$V1, n=15)

К сожалению, он использует только 15 дней до каждой даты.

...