Я пытаюсь сделать что-то, что, как мне кажется, легко в Excel, но в R. Концепция - это сложный процент с переменной процентной ставкой, которая может увеличиваться или уменьшаться и использует значение прошлого года.Я хочу, чтобы значение x определялось предыдущим значением x, добавленным к предыдущему значению x, кратному скорости в другом векторе.Это должно происходить рекурсивно по всему вектору.
Математика: x [i + 1] = x [i] + x [i] * rate [i]
Я пытался исследовать этос stats::filter
и использованием lag
в dplyr
, но либо они не могут обрабатывать переменную скорость, либо выходной вектор, кажется, слегка отклоняется от значения, которое должно быть.
Вот некоторые смоделированные данные:
set.seed(2)
x <- 100 ## initial data
rate <- rnorm(5,1)/100 ## generate random rate of change
Так что скорость равна:
rate = c(0.001030855, 0.011848492, 0.025878453, -0.001303757, 0.009197482)
Требуемый вывод:
x.with.rate <- c(100.1031, 101.2892, 103.9104, 103.7749, 104.7294)
Предпочтительно без петли, пожалуйста