我收到以下错误:“'expr'必须是函数,或者包含'x'的调用或表达式”
我使用带有二项回归模型的曲线函数来模拟关系。那部分工作正常。
我正在尝试使用相同的曲线函数来估计给定特定x的y。这是我遇到麻烦并得到上述错误的地方。
我知道错误来自下面的curve(predict(model1, data.frame(X=XInput)))
行。如果我取出曲线函数,代码将运行,但不会给出曲线函数的y值。
请参阅下面的所有示例代码,请提供建议。
shinyServer(function(input, output) {
data<-data.frame(datasource)
...
model1pred <- reactive({
XInput <- input$B/input$C
curve(predict(model1, data.frame(X=XInput)))})
...
output$plot1 <- renderPlot({
XInput <- input$B/input$C
plot(data$X, data$Y, xlab = "x", ylab = "y", bty = "n", pch = 16)
if(input$condition){
model1 <- glm(X ~ Y, family = binomial, data = subset(data, condition==1))
} else {
model1 <- glm(X ~ Y, family = binomial, data = subset(data, condition==0))
}
curve(predict(model1, data.frame(X=XInput), "resp"), add=TRUE)
})
output$pred1 <- renderText({
model1pred()
})
})
答案 0 :(得分:0)
我刚刚通过设置xname
变量修复了问题。它的默认值为x,因此它会搜索该值。如果您将代码更改为以下内容:
curve(predict(model1, data.frame(X=XInput)), xname="model1")
然后它就会工作。