首页 > 解决方案 > 带有变量的 if 语句在多个地方使用

问题描述

我正在尝试构建一个闪亮的仪表板,我必须在其中使用 if 语句来确定应该如何处理变量。在这种情况下,if 语句分配一个倍数(1 或 0),然后在代码中稍后将其与多个变量相乘。由于某种原因,我无法让 IF 语句在 renderUI 函数之外工作。我试图使它成为一个反应函数,但这也不起作用。

server <- function(input, output, session) {
  LinerCost <- reactive ({ input$LLDPE_Liner/100 * DirectRM_Cost$Rs_KG[15] +
      input$Other_Additive_Liner/100 * DirectRM_Cost$Rs_KG[20]}) 

  reactive({if (input$lamination == "lam_yes") {
    lam_rm_multiple = 1} else {
      lam_rm_multiple = 0
    }}) 

  LamCost <- reactive({ LamCost * lam_rm_multiple })
  LinerCost <- reactive ({LinerCost * liner_rm_multiple})

  Weight <- reactive ({ 
    as.numeric(input$final_lam_weight) * lam_rm_multiple 
  }) 

  RMcost <- reactive({
    ((as.numeric(input$final_unlam_weight) / CombinedWeight()) * UnLamCost())
  }) 
}

shinyApp(ui, server)

在这里,我希望lam_rm_multiple为 分配一个 0 或 1 的值,然后将其乘以变量并根据需要强制它们为 0。目前,我在闪亮的说法中遇到错误 - 警告:错误:找不到对象'lam_rm_multiple'

标签: if-statementshinyreactive

解决方案


推荐阅读