【问题标题】:Linear Regression: Error in eval(predvars, data, env) : object 'G3' not found线性回归:eval 中的错误(predvars、data、env):找不到对象“G3”
【发布时间】:2018-11-18 14:55:28
【问题描述】:

我是 R 新手。我正在尝试在数据集中使用多元线性回归算法。我试图预测的属性名为 G3。 我试着这样做:

d1=read.table("student-mat.csv",sep=";",header=TRUE)

train <- d1[1:356,]
test <- d1[357:395,]
fit2 <- lm(G3 ~ famrel + G1 + G2, data=train)
coefficients(fit2)

它没有错误地工作。 然后我尝试做交叉验证,所以我这样做了:

install.packages("DAAG")
library(DAAG)
cv.lm( form.lm = fit2, m=3, dots=FALSE) # 3 fold cross-validation

但最后一行给了我这个错误:

eval 中的错误(predvars、data、env):找不到对象“G3”

我不明白为什么。我搜索了这个错误,当对象不在数据框中时通常会发生这种错误,事实并非如此。谁能告诉我该怎么办?

【问题讨论】:

    标签: r


    【解决方案1】:

    您似乎遗漏了cv.lm 中的数据参数,这就是 R 无法找到 G3 对象的原因。应该是这样的:

    library(DAAG)
    cv.lm(data= mtcars, mpg ~ drat + hp, m= 3)
    

    我在这里使用mtcars 数据,您可以尝试使用您的数据并告诉我。它应该工作

    【讨论】:

    • 感谢您的回答。就我而言,mtcars 应该是 fit2?我试过了,但没有用。
    • @Person NO ,应该是你的数据名d1不是模型名,fit2是你的模型名不是数据名。
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2020-09-21
    • 2020-04-12
    • 1970-01-01
    • 2022-01-11
    • 2020-04-02
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多