我编写了一个闪亮的应用程序。它具有用户输入数据集和用户输入因变量。它预测因变量。 因变量存储在输入$ text
中在UI.R中:
textOutput('contents2')
在server.R中我提到了一个条件语句,如果因变量是因子,它将预测类级别,否则连续值:
output$contents2 <- renderText({
if(class(input$text)=="factor"){
predict(modelc(), newdata=testdata(),type="class")}
if(class(input$text)=="numeric"){
predict(model(), newdata=testdata())
}
})
但它没有显示预测值。我想知道可能会遗漏什么。感谢
答案 0 :(得分:1)
由于renderText
没有返回任何值,因此无法打印任何内容,您可以通过将predict(...)
包装到return
函数中轻松修复它。
然而,还有另一个错误。由于input$text
是一个字符串,因此其类为character
,并且您的逻辑比较不符合您的要求。您可以先修改testdata()
与[[
运算符进行对其进行修正,然后运算符为您提供向量,然后检查其类。
您还必须确保输入变量的名称确实是有效变量 - 与req
函数(或validate
和need
)一样{/ p>
完整示例:
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()) )
}
})