R(Shiny)

时间:2018-01-15 06:24:44

标签: r recursion shiny shiny-server

我正在研究正在研究贷款预测模型的R(Shiny)。我正在尝试计算特定方法的贷款金额,但它向我显示无限递归的错误,就像大多数帖子中提到的那样,即使我尝试了选项(表达式= 1000),但是我还在经历这个错误。

如果我把我的条件写成

MDBB_LA<- reactive({ input$MDBB*10 }) 

然后它没有给我任何错误,但如果我在此添加另一个条件

 DSCR_Post<- reactive({
 if (input$MU == "EMM" & (input$EMIM/12)+EMI()!=0) {
  EBITDA_EMM()/((input$EMIM/12) + EMI())
} else if (input$MU == "EMM" & (input$EMIM/12)+EMI()==0) {
  0
} else if (input$MU != "EMM" & (input$EMIM/12)+EMI()!=0 ){
  EBITDA()/((input$EMIM/12) + EMI())
}else{
  0
}})

  MDBB_LA<- reactive({ if ((input$MU == "EMM" & DSCR_Post() >= 1) | (input$MU == "FAT1" & DSCR_Post() >= 0.8) | (input$MU == "FAT2" & DSCR_Post() >= 0.7) | (input$MU == "UAT" & DSCR_Post() >= 0.5)) {
  input$MDBB*10*2
} else if ((input$MU == "EMM" & DSCR_Post() < 1) | (input$MU == "FAT1" & DSCR_Post() < 0.8 ) | (input$MU == "FAT2" & DSCR_Post() < 0.7) | (input$MU == "UAT" & DSCR_Post() < 0.5)){
  input$MDBB*10
} else if ((input$MU == "MDBB1" ) | (input$MU == "MDBB2" ) | (input$MU == "MDBB3") | (input$MU == "MDBB4") ){
  input$MDBB*10
} else {input$MDBB*10}
})

然后它显示我的错误:

  

警告:错误:评估嵌套太深:无限递归/选项(表达式=)?

任何可以帮助我的人,逻辑陈述出了什么问题。

1 个答案:

答案 0 :(得分:0)

如果没有可重复的答案,这很难回答,但我知道解决这个问题的两种方法,无需调整代码或数据,就是增加表达式和ppsize。尝试超过1000,如1500或2000表达式(甚至20000)。当你打开你的控制台时,也尝试增加--max-ppsize。