5

数据集可以从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 新手,不是一个很好的程序员。

4

3 回答 3

12

names(mydata)。当您创建 data.frame 时,read.table()会将“坏”列名变成好的列名。您不能(好吧,不应该)在列名中有空格,因此 R 将空格更改为句点。另外,您永远不应该在公式中引用字符串。尝试

fit <- rpart(quality ~ residual.sugar + citric.acid, method = "class", data = mydata)

(我不知道“YouSweetBoy”应该是什么,因为它不在数据集中,所以我将其更改为“质量”)。

于 2015-01-14T20:26:58.877 回答
3

删除自变量名称中的空格并去掉引号使其工作。

而不是“残糖”,使用residual_sugar

于 2018-09-25T00:28:30.147 回答
0

或者,用 `` 包装你的变量名

所以

`residual sugar`

这应该有效:

fit <- rpart(quality ~ `residual sugar` + `citric acid`, method = "class", data = mydata)
于 2021-04-20T21:27:32.833 回答