I have if...else function to replace the value of survival rate for 28 periods, I think it stop replacing any value after row 2. As a result, "number of items to replace is not a multiple of replacement length".
Survival.rate[nperiod, ] = Survival.rate[nperiod - 1,] * Retention.Rate
Error in annual.profit[nperiod, ] = annual.profit * Survival.rate[nperiod, : number of items to replace is not a multiple of replacement length
nperiods = 28
Survival.rate = matrix(0, nrow=nperiods, ncol=5)
annual.profit = matrix(0, nrow=nperiods, ncol=5)
dis.annual.profit = matrix(0, nrow=nperiods, ncol=5)
for (nperiod in 1:nperiods) {
if (nperiod==1) {
Survival.rate[nperiod, ] = 1
# calculate annual profit for year.one
annual.profit[nperiod, ] = Annual.Margin-Acquisition.Cost
}
else {
Survival.rate[nperiod, ] = Survival.rate[nperiod - 1,] * Retention.Rate
annual.profit[nperiod, ] = annual.profit * Survival.rate[nperiod, ]
}
dis.annual.profit[nperiod, ] = annual.profit[
nperiod, ] / (1+interest.rate)^(nperiod)
}`