Условная группировка / циклы для 2 векторов
Предположим, что инвестиции дают купон в размере 80 долларов каждые полгода, т.е. 40 долларов каждые шесть месяцев. Процентные ставки за шесть месяцев, 12 месяцев и 18 месяцев составляют 3,4%, 4,9% и 5,2% соответственно. Мне нужно сделать скидку на их приведенную стоимость. Математически я бы сделал
40*EXP((-.034)*(.5))+40*EXP((-.049)*(1))+40*EXP((-.052%)*(1.5))
или же
K*EXP((r1)*(t1))+K*EXP((-r2)*(t2))+K*EXP((-r3)*(t3))
1) Теперь, если выплата не была раз в полгода, скажем, ежемесячно, т. Е. Каждый месяц или ежеквартально, т. Е. Каждый квартал, как мне кодировать, чтобы в случае ежемесячной выплаты
K*EXP((r1)*(1/12))+K*EXP((-r2)*(1/6))+K*EXP((-r3)*(1/4))+ ....
или в случае ежеквартально необходимо пропустить каждые 2 переменные в т
K*EXP((-r1)*(1/4))+K*EXP((-r2)*(1/2))+K* EXP((-r3)*(3/4))
2) После того, как время проходит в течение года - как я могу запустить цикл, чтобы просто добавить 1, а затем пропустить то же количество переменных
t<- c(1/12,1/6,1/4,1/3,5/12,1/2,7/12,2/3,3/4,5/6,11/12,1)
j<- t+1
определить другую переменную, такую как j, и продолжать делать это
Помогите. Спасибо
1 ответ
Пожалуйста, смотрите алгоритм ниже для подмножества векторов и умножения, а также for
-loop.
NB, вы не должны использовать процентную запись с %
, лайк 1%
использовать 0.01
вместо.
t <- c(1 / 12, 1 / 6, 1 / 4, 1 / 3, 5 / 12, 1 / 2, 7 / 12, 2 / 3, 3 / 4, 5 / 6, 11 / 12, 1)
r <- range(c(1, 12) / 100)
# 1.) Pick any one or few selective values from t and multiply with all/any value in r.
# the first and the second elements of vector multiplied by all r elements
t[1:2] * r
# [1] 0.0008333333 0.0200000000
# 2.) Can I run a loop where 't' time goes beyond 1 year?
i <- 2 # number of years
total <- numeric(0)
for(i in 2:(i + 1)) {
total <- c(total, t * i)
}
# t for 2 years
total
# [1] 0.1666667 0.3333333 0.5000000 0.6666667 0.8333333 1.0000000 1.1666667 1.3333333 1.5000000 1.6666667 1.8333333
# [12] 2.0000000 0.2500000 0.5000000 0.7500000 1.0000000 1.2500000 1.5000000 1.7500000 2.0000000 2.2500000 2.5000000
#