如何在R中修复:ExtractVars中无效的模型公式

1,531 阅读2分钟

你在R中可能遇到的一个错误是。

Error in terms.formula(formula, data = data) : 
  invalid model formula in ExtractVars

当你试图在R中拟合一 棵决策树,并在公式中错误地指定一个或多个变量时,就会出现这个错误。

本教程确切地分享了如何在实践中修复这个错误。

如何重现该错误

假设我们在R中创建了以下数据框。

#create data frame
df <- data.frame(rating=c(88, 94, 99, 90, 76, 78, 81, 88),
                 points=c(14, 17, 22, 24, 25, 22, 29, 31),
                 assists=c(7, 7, 6, 12, 10, 11, 17, 2),
                 rebounds=c(7, 8, 8, 12, 9, 5, 11, 15))

#view data frame
df

  rating points assists rebounds
1     88     14       7        7
2     94     17       7        8
3     99     22       6        8
4     90     24      12       12
5     76     25      10        9
6     78     22      11        5
7     81     29      17       11
8     88     31       2       15

现在假设我们试图使用**rpart()**函数来拟合数据的决策树模型。

library(rpart)

#attempt to fit decision tree model to data
model <- rpart(rating ~ "points" + "assists" + "rebounds", data = df)

Error in terms.formula(formula, data = data) : 
  invalid model formula in ExtractVars

我们收到一个错误,因为我们在预测变量名称周围使用了引号,这在公式中是不允许的。

如何修复该错误

解决这个错误的方法是简单地去掉变量名称周围的引号,然后按以下方式写公式。

library(rpart)

#fit decision tree model
model <- rpart(rating ~ points + assists + rebounds, data = df)

#view summary of model
summary(model)

Call:
rpart(formula = rating ~ points + assists + rebounds, data = df)
  n= 8 

    CP nsplit rel error xerror xstd
1 0.01      0         1      0    0

Node number 1: 8 observations
  mean=86.75, MSE=55.1875 

我们能够成功地拟合模型而没有任何错误,因为我们删除了公式中预测变量的引号。

其他资源

下面的教程解释了如何修复R中的其他常见错误。

如何修复:条件的长度大于1,并且只使用第一个元素
如何修复:二进制运算符的非数字参数
如何修复:dim(X)必须有一个正的长度
如何修复:选择未使用参数的错误

The postHow to Fix in R: invalid model formula in ExtractVarsappeared first onStatology.