我想调整我的摊还资金表的长度。问题是当我第一次运行应用程序及其公式(例如20个计算周期)时,在下次运行时,当我需要运行10个周期时,公式会覆盖计算,保留先前计算的值。 / p>
闪亮的代码就是这样:
t_y
我理解表的生成计算,但是在Shiny中动态再现它的那一刻,我不能将其长度调整为周期数。
以下是我了解应用程序时的链接: https://github.com/pakinja/-Financial-Mathematics-in-R/blob/master/AmortizationFund.r#L40
答案 0 :(得分:0)
首先,在闪亮的应用程序中使用全局变量是一个坏主意,因为全局变量在会话之间共享。您应该使用reactiveValues
代替。
尽管如此,代码的问题在于您需要重置函数中的所有变量,以便根据句点数调整长度。有点像这样:
f.amort <- function(M,i,n) {
R <<- M*i/(((1 + i)**n)-1)
#Reset you variables
IR <<- numeric();CA <<- numeric();SF <<- numeric()
IR[1] <<- 0
IR[2] <<- R*i
CA[1] <<- R
SF[1] <<- R
for (k in 1:(n-1)) {
CA[k+1] <<- R + IR[k+1]
SF[k+1] <<- SF[k] + CA[k+1]
if (k < n-1){
IR[k+2] <<- SF[k+1]*i
}
}
}
此外,在服务器外定义功能将是一个好主意,而不是使用这么多功能混乱服务器。