繁体   English   中英

Shiny中的条件语句不显示值

[英]Conditional Statement in Shiny not displaying values

我已经编写了一个闪亮的应用程序。 它具有用户输入数据集和用户输入因变量。它预测因变量。 因变量存储在input $ text中

在UI.R中:

textOutput('contents2')

在server.RI中提到了一个条件语句,其中如果因变量是factor,它将预测类级别,否则将预测连续值:

      output$contents2 <- renderText({
        if(class(input$text)=="factor"){
            predict(modelc(), newdata=testdata(),type="class")}

        if(class(input$text)=="numeric"){
                predict(model(), newdata=testdata())  

        }
   })

但是它没有显示预测值。 我想知道可能会丢失什么。 谢谢

由于renderText不返回任何值,因此不会打印任何renderText ,您可以通过将renderText predict(...)包装到return函数中来轻松修复它。

但是,还有另一个错误。 由于input$text是一个字符串,因此它的类是character而您的逻辑比较不会执行您想要的操作。 您可以通过使用[[运算符为您提供向量的子运算符]子集testdata()来进行修复,然后检查其类。

您还必须确保输入变量的名称确实是一个有效变量-与req函数一样(或validateneed


完整示例:

output$contents2 <- renderText({

  req(input$text %in% names(testdata() ))
  test <- class(testdata()[[input$text]])

  if (test == "factor") {
    return(predict(modelc(), newdata = testdata(), type = "class") )
  }
  if (test == "numeric") {
    return(predict(model(), newdata = testdata()) )
  }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM