在R中使用rpart函数时,在ExtractVars中获取无效的模型公式

时间:2015-01-14 20:21:45

标签: r rpart

可以从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的新手,而不是一个非常优秀的程序员。

3 个答案:

答案 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)