在R中使用线性模型预测时出现问题

时间:2014-04-17 01:20:26

标签: r

我有一个简单的问题,但似乎无法弄清楚我做错了什么。我使用predict估算拟合线性模型的值。以下代码正常工作:

x <- c(1, 2, 3, 4, 5 , 6)
y <- c(1, 4, 9, 16, 25, 36)
model <- lm(y ~ x)
predict(model, newdata = data.frame(x=7))

但是,当我对x和y使用相同的数据时,但在数据帧中,它不起作用。例如,

df2 <- structure(list(x = c(1, 2, 3, 4, 5, 6), y = c(1, 4, 9, 16, 25,36)), 
                 .Names = c("x", "y"), row.names = c(NA, -6L), class = "data.frame")
model <- lm(df2$y ~ df2$x)
predict(model, newdata = data.frame(x=7))

抛出错误:

Warning message:
'newdata' had 1 row but variables found have 6 rows 

我正在使用相同的确切数据,我期待相同的答案。谁能告诉我我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:2)

尝试

model = lm(y ~ x, data = df2)
predict(model, newdata = data.frame(x = 7))

问题在于您指定公式的方式。