我在R中出现“可变长度差异”错误的原因是什么?

时间:2017-07-26 15:41:01

标签: r dataframe machine-learning reference cross-validation

我试图通过以下方式使用简单拟合和交叉验证:

library(ISLR)
attach(Auto)

Auto$cut.values = cut(displacement,2)
fit = glm(mpg~Auto$cut.values)
cv.glm(Auto, fit, K=10)$delta[1]

但我收到一个错误:

Error in model.frame.default(formula = mpg ~ Auto$cut.values, data = list( : variable 
lengths differ (found for 'Auto$cut.values')

但是如果我尝试稍微改变第三行并运行它,那么我没有得到错误并获得结果:

Auto$cut.values = cut(displacement,2)
fit = glm(mpg~cut.values, data = Auto)
cv.glm(Auto, fit, K=10)$delta[1]

据我所知,cut.values, data = AutoAuto$cut.values相同。

我在这里失踪了什么?

1 个答案:

答案 0 :(得分:2)

当您第一次attach数据集时,没有名为cut.values的变量。因此,您以后不能参考它。

如果您想从attach中受益,则需要在向数据集中添加其他变量后attach(Auto)

library(ISLR)
attach(Auto)

Auto$cut.values = cut(displacement,2)
attach(Auto)

fit = glm(mpg~cut.values)
cv.glm(Auto, fit, K=10)$delta[1]