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
Just to add to this; This can happen if you don't attach your dataset Just wasted a half hour figuring this out as well.
Cheers
i use colname(train) = paste("A", colname(train)) and it turns out to the same problem as yours.
I finally figure out that randomForest is more stingy than rpart, it can't recognize the colname with space, comma or other specific punctuation.
paste function will prepend "A" and " " as seperator with each colname. so we need to avert the space and use this sentence instead:
this will prepend string without space.
I think I got what I was looking for..
Don't know why @Janos deleted his answer, but it's correct: your data frame
Train
doesn't have a column namedpre
. 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. YourTrain
has columns calledresidual.sugar
,total.sulfur
,alcohol
andquality
. 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 variablepre
. It's the latter that has to be consistent with the data frame.