【发布时间】:2018-01-15 06:24:43
【问题描述】:
我正在研究贷款预测模型的 R(Shiny)。我正在尝试计算特定方法的贷款金额,但它向我显示了无限递归的错误,就像大多数帖子中提到的那样,即使我尝试了 options(expressions = 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}
})
然后它向我显示错误:
警告:错误:计算嵌套太深:无限递归/选项(表达式=)?
任何可以帮助我的人,逻辑语句出了什么问题。
【问题讨论】:
-
DSCR_Post()长什么样子?? -
你能举一个可复制的例子吗?为什么同一结果
input$MDBB*10有三个不同的条件?你可以只拥有一个全局的 else,不是吗? -
DSCR_Post() 是我正在定义的一个函数,它正在执行一些计算
-
我已经尝试过 if 和 else 条件,但它仍然给我同样的错误
-
能否请您提供一个显示您的问题的完整应用程序的 MWE
标签: r recursion shiny shiny-server