Shiny App-R中的动态表长度调整

时间:2017-09-09 23:53:42

标签: r shiny

我想调整我的摊还资金表的长度。问题是当我第一次运行应用程序及其公式(例如20个计算周期)时,在下次运行时,当我需要运行10个周期时,公式会覆盖计算,保留先前计算的值。 / p>

闪亮的代码就是这样:

t_y

我理解表的生成计算,但是在Shiny中动态再现它的那一刻,我不能将其长度调整为周期数。

以下是我了解应用程序时的链接: https://github.com/pakinja/-Financial-Mathematics-in-R/blob/master/AmortizationFund.r#L40

1 个答案:

答案 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  
      }
    }
  }

此外,在服务器外定义功能将是一个好主意,而不是使用这么多功能混乱服务器。