可以从http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/
下载数据集收到以下错误:
formula(formula, data = data) :
invalid model formula in ExtractVars
使用以下代码:
install.packages("rpart")
library("rpart")
# you'll need to change the following from windows to work on a linux box:
mydata <- read.csv(file="c:/Users/md7968/downloads/winequality-red.csv")
# grow tree
fit <- rpart(YouSweetBoy ~ "residual sugar" + "citric acid", method = "class", data = mydata
请注意,我已将CSV文件中的分隔符更改为逗号。
也许它没有正确读取数据。请原谅我,我是R的新手,而不是一个非常优秀的程序员。
答案 0 :(得分:7)
看看names(mydata)
。当您创建data.frame时,read.table()
将变为&#34; bad&#34;列名称为好的。你不能(好吧,不应该)在列名中有空格,所以R将空格改为句点。另外,你不应该在公式中引用字符串。尝试
fit <- rpart(quality ~ residual.sugar + citric.acid, method = "class", data = mydata)
(我不知道&#34; YouSweetBoy&#34;应该是什么,因为那不是数据集,所以我将其改为&#34;质量&#34;)。
答案 1 :(得分:0)
删除自变量名称中的空格并删除引号使其生效。
使用“ residual_sugar”代替“残糖”
答案 2 :(得分:0)
或者,用``
包裹你的变量名所以
`residual sugar`
这应该有效:
fit <- rpart(quality ~ `residual sugar` + `citric acid`, method = "class", data = mydata)