Добавить столбец даты в расчет скользящей суммы временного ряда в R - PullRequest
0 голосов
/ 05 августа 2020

Предположим, у меня есть следующие данные временного ряда: source

+-----------+---+
|   Date    | A |
+-----------+---+
| 31-Dec-15 | 1 |
| 31-Dec-16 | 2 |
| 31-Dec-17 | 3 |
| 31-Dec-18 | 4 |
| 31-Dec-19 | 5 |
+-----------+---+

Я выполняю следующий скользящий расчет для source с N = 2 и N = 3. Код R:

for(i in (nrow(source)-(N-1)):1){A[i] <- sum(source$A[i:(i+(N-1))])}
output = data.frame(A)
print(output)

Как мне интегрировать индекс даты в приведенный выше код, чтобы на выходе

  1. N=2 получалось
+-----------+---+
|   Date    | A |
+-----------+---+
| 31-Dec-16 | 3 |
| 31-Dec-17 | 5 |
| 31-Dec-18 | 7 |
| 31-Dec-19 | 9 |
+-----------+---+
N=3 выводит

+-----------+----+
|   Date    | A  |
+-----------+----+
| 31-Dec-17 |  6 |
| 31-Dec-18 |  9 |
| 31-Dec-19 | 12 |
+-----------+----+

Мой текущий код выводит только столбец A без столбца Date. И мне нужно вручную добавить столбец Date после печати output. Мои фактические данные временного ряда намного длиннее этого, а скользящие вычисления более сложны, поэтому это упрощенный пример.

1 Ответ

0 голосов
/ 06 августа 2020

Формализация предложения @Alexlok:

for(i in (nrow(source)-(N-1)):1){A[i] <- sum(source$A[i:(i+(N-1))])}
output = data.frame(Date = source$Date[N:nrow(source)],A = A)
print(output)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...