ここで何が悪いのか理解できません。
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)
次のエラーが表示されます。
Error in eval(expr, envir, enclos) : object 'pre' not found
@Janosが答えを削除した理由はわかりませんが、それは正しいです。データフレームTrain
にはpre
という名前の列がありません。数式とデータフレームをモデル近似関数に渡す場合、数式の名前はデータフレームの列を参照する必要があります。 Train
には、residual.sugar
、total.sulfur
、alcohol
、およびquality
という列があります。式が一致するように、式またはデータフレームを変更する必要があります。
そして明確にするために:Pre
は式を含むオブジェクトです。この式には、変数pre
への参照が含まれています。データフレームと一致する必要があるのは後者です。
これに追加するだけです。これは、データセットを添付しない場合に発生する可能性があります。これも同様に考えて30分無駄になります。
乾杯
探していたものを手に入れたと思います。
data.train <- read.table("Assign2.WineComplete.csv",sep=",",header=T)
fit <- rpart(quality ~ ., method="class",data=data.train)
plot(fit)
text(fit, use.n=TRUE)
summary(fit)
私はcolname(train)= paste( "A"、colname(train))を使用しますが、それはあなたと同じ問題になります。
RandomForestはrpartよりもケチであり、スペース、コンマ、またはその他の特定の句読点を含むcolnameを認識できないことが最後にわかりました。
貼り付け関数は、各列名の区切り文字として「A」と「」を追加します。そのため、スペースを回避して、代わりに次の文を使用する必要があります。
colname(train) = paste("A", colname(train), sep = "")
これにより、スペースなしで文字列が追加されます。