错误:“'expr'必须是一个函数,或者一个包含'x'的调用或表达式,在使用r中的曲线函数预测y时,用于逻辑回归

时间:2017-11-05 05:27:31

标签: r shiny logistic-regression

我收到以下错误:“'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()
 })
})

1 个答案:

答案 0 :(得分:0)

我刚刚通过设置xname变量修复了问题。它的默认值为x,因此它会搜索该值。如果您将代码更改为以下内容:

curve(predict(model1, data.frame(X=XInput)), xname="model1")

然后它就会工作。