У меня есть существующая таблица, как показано ниже
таблица
Таблица основана на 4 критериях на самом верху.
Начисление amt = начальная сумма * фактическая доходность * 1/4
нетто-платеж = основная сумма * номинальная ставка * 1/4 (за исключением последнего времени в часах, в течение которого чистая оплата + основная сумма вместе)
Конечная сумма = Начальная сумма + Сумма начисления - Чистый платеж
Конечная цель - получить конечную сумму, равную нулю, чтобы определить целевую фактическую доходность, которая сейчас равна 10% (в Excel мы используем функцию поиска цели, но я хочу повторить этот процесс в r):
стремление к достижению цели
Я новичок в кодировании, и на основании некоторых исследований я придумал следующий код:
f <- function(x) {
dfSum <- df[1,1]
for (i in 1:nrow(df)) {
dfSum = dfSum + df[i,1]*x - df[i,3]}
dfSum
}
# solve (or optimize)...
s <- uniroot(f, lower=0, upper=1)
однако результат отличается от того, каким он должен быть. правильный доход должен составлять 9,88%, код возвращает результат следующим образом:
root = 0.024866
f.root = 0
iter = 1
init.it = [Null]
estim.prec = 0.975134
Может кто-нибудь указать или исправить, где я сделал не так?
Спасибо!