R语言如何修复:invalid model formula in ExtractVars

R语言如何修复:invalid model formula in ExtractVars

在这篇文章中,我们将看到如何在R编程语言中修复–ExtractVars中无效的模型公式。

当我们在拟合决策树时在公式中不正确地指定变量时,就会发生 “ExtractVars中的无效模型公式 “的错误。它包括在rpart方法(即拟合决策树模型)中指定变量名称时在其周围添加引号。为了建立分类树或决策树,R提供了一个强大的机器学习库,称为rpart,它实现了递归分区。让我们看一下在ExtractVars中抛出错误–无效模型公式的示例代码

错误产生

# create a data frame
playersData <- data.frame(pointsEarned=c(160, 171, 165, 49, 95),
                          starsEarned=c(80, 94, 100, 20, 36),
                          level=c(8, 9, 10, 2, 3))
 
# importing required libraries
library(rpart)
 
# fitting decision tree model to players data
model <- rpart(pointsEarned ~ "starsEarned" + "level",
               data = playersData)
Bash

输出

Error in terms.formula(formula, data = data) :

invalid model formula in ExtractVars

Calls: rpart  <Anonymous> -> model.frame.default -> terms -> terms.formula

Execution halted

[Execution complete with exit code 1]
Bash

在ExtractVars中得到这个错误无效的模型公式的原因是在rpart方法中,我们在变量名startsEarned和level周围使用了引号。因此,为了解决这个ExtractVars中的无效模型公式错误,有两种方法,可以在下面分别解释。

方法1:使用消除引号

在rpart方法的公式中消除变量名称周围的引号是可以接受的,它不会产生任何错误。这是解决错误的最简单的方法。因此,让我们来看看这个错误修正的代码。

#create a data frame
playersData <- data.frame(pointsEarned=c(160, 171, 165, 49, 95),
                          starsEarned=c(80, 94, 100, 20, 36),
                          level=c(8, 9, 10, 2, 3))
 
#importing required libraries
library(rpart)
 
#fitting decision tree model to players data
model <- rpart(pointsEarned ~ starsEarned + level, data = playersData)
Bash

输出

[Execution complete with exit code 0]
Bash

输出中的退出代码0表示代码被执行,没有错误。

方法2:使用标准符号/常规

另一种解决错误的方法是使用标准符号/常规格式来访问rpart方法中指定数据框架中的列。这种方法被广泛使用,因为每个人在编码时都会遵循标准符号。以下是执行时没有错误的代码。

# create a data frame
playersData <- data.frame(pointsEarned=c(160, 171, 165, 49, 95),
                          starsEarned=c(80, 94, 100, 20, 36),
                          level=c(8, 9, 10, 2, 3))
 
# importing required libraries
library(rpart)
 
# fitting decision tree model to players data
model <- rpart(playersDatapointsEarned ~
               playersDatastarsEarned +
               playersData$level, data = playersData)
Bash

输出

[Execution complete with exit code 0]
Bash

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册