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

时间:2019-12-19 12:07:59

标签: r

我只是从R开始机器学习。我的目标是愚蠢的,请原谅。我试图训练评论一个人的BMI是超重,体重不足还是健康。 到目前为止,这是我的代码:-

    dataset <- data.frame(
    BMI = c(15.5, 16.7, 17.8, 18.9, 19.0, 19.5, 20.7, 21.9,
            22.5, 23.5, 24.5, 25.0, 26.0, 27.7, 26.6, 29.3),
    Result = c("Underweight", "Underweight", "Underweight", 
                "Healthy", "Healthy", "Healthy", "Healthy", 
                "Healthy", "Healthy", "Healthy", "Healthy", 
                "Overweight", "Overweight", "Overweight", 
                "Overweight", "Overweight")
    )
    head(dataset)
    x <- dataset[,-2]
    y <- dataset[2]
    model_svm <- svm(Result ~ ., data = dataset)
    summary(model_svm)
    pred <- predict(model_svm, x)

但是我在predict的最后一行遇到此错误:-

  

eval(predvars,data,env)中的错误:找不到对象'BMI'

1 个答案:

答案 0 :(得分:2)

子集数据集以创建x(和y)时,将隐式删除维,并且仅 保留列向量。换句话说,x vector ,而不是数据帧。这是基本R数据帧子集运算符的烦人特性。

您可以避免这种情况:

x <- dataset[, -2, drop = FALSE]