【问题标题】:Shiny server output if-statement error闪亮的服务器输出 if 语句错误
【发布时间】:2017-02-10 16:40:33
【问题描述】:

我在下面的代码中得到一个missing value where TRUE/FALSE needed,我不知道为什么。

output$Strength<-renderText( if(input$Motiv>=((input$Tempt-input$Rew)/(input$Tempt-input$Pun))){ "Strong!" }else{ "Weak!" } )

Shiny App 的其余部分运行良好。

【问题讨论】:

  • 你有没有试过调试代码来查看if之前input的实际内容?您能否在问题中包含在 if 之前执行的 print(input) 的结果?
  • 当我拿出这个语句时,应用程序运行良好。这是相关的 UI 代码:textOutput("Strength")
  • 是的,但该错误可能是由于input 不包含您尝试使用$ 访问的一个(或多个)列。您能否在renderText 函数中包含调用print(input) 的结果?
  • 对不起,我不明白你的意思是“你能在 renderText 函数中包含调用 print(input) 的结果吗?”
  • 替换你发布的这个output$Strength&lt;-renderText(print(input))的代码。这将在控制台中打印变量input 的内容。这个想法是检查它的内容。您的代码试图访问该变量内的 3 列:TemptRewPun。也许其中一个是无效的,因此你的错误。

标签: r if-statement shiny


【解决方案1】:

试试..

output$Strength<-renderText(
    if(input$Motiv[1] >= ((input$Tempt[1]-input$Rew[1])/(input$Tempt[1]-input$Pun[1]))){
      "Strong!"
    }else{
      "Weak!"
    }
)

【讨论】:

    猜你喜欢
    • 2021-09-21
    • 2022-01-13
    • 2013-05-16
    • 2015-10-22
    • 2022-12-08
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多