我在 R 中出现 "Variable Lengths Differ" 错误的原因是什么?
What is the reason for my "Variable Lengths Differ" error in R?
我正在尝试通过以下方式使用简单拟合和交叉验证:
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 = Auto
和Auto$cut.values
是一样的。
我在这里遗漏了什么?
当您第一次 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]
我正在尝试通过以下方式使用简单拟合和交叉验证:
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 = Auto
和Auto$cut.values
是一样的。
我在这里遗漏了什么?
当您第一次 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]