我有一个简单的问题,但似乎无法弄清楚我做错了什么。我使用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
我正在使用相同的确切数据,我期待相同的答案。谁能告诉我我做错了什么?谢谢!
答案 0 :(得分:2)
尝试
model = lm(y ~ x, data = df2)
predict(model, newdata = data.frame(x = 7))
问题在于您指定公式的方式。