Error in eval(expr, envir, enclos) : object not found

Rads picture Rads · Oct 19, 2013 · Viewed 226.2k times · Source

I cannot understand what is going wrong here.

data.train <- read.table("Assign2.WineComplete.csv",sep=",",header=T)
# Building decision tree
Train <- data.frame(residual.sugar=data.train$residual.sugar,
                total.sulfur.dioxide=data.train$total.sulfur.dioxide, 
                alcohol=data.train$alcohol,
                quality=data.train$quality)
Pre <- as.formula("pre ~ quality")

fit <- rpart(Pre, method="class",data=Train)

I am getting the following error :

Error in eval(expr, envir, enclos) : object 'pre' not found

Answer

Hong Ooi picture Hong Ooi · Oct 19, 2013

Don't know why @Janos deleted his answer, but it's correct: your data frame Train doesn't have a column named pre. When you pass a formula and a data frame to a model-fitting function, the names in the formula have to refer to columns in the data frame. Your Train has columns called residual.sugar, total.sulfur, alcohol and quality. You need to change either your formula or your data frame so they're consistent with each other.

And just to clarify: Pre is an object containing a formula. That formula contains a reference to the variable pre. It's the latter that has to be consistent with the data frame.