[英]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
函数一样(或validate
并need
)
完整示例:
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.