Предположим, у меня есть следующие данные временного ряда: 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)
Как интегрировать индекс даты в приведенный выше код, чтобы
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
. Мои фактические данные временных рядов намного длиннее этого, а скользящие вычисления более сложны, поэтому это упрощенный пример.
rollsum(df1$A, 3)
- person akrun   schedule 05.08.2020for
сложнее, чем в приведенном выше примере. Следовательно, я хотел бы найти способ добавить столбецDate
без изменения раздела кодаfor
- person sjedi   schedule 05.08.2020output <- data.frame(Date = source$Date[N:nrow(source)], A = A)
? - person Alexlok   schedule 05.08.2020