如何在 R 中修复:ExtractVars 中的无效模型公式
在本文中,我们将看到如何在 R 编程语言中修复 ExtractVars 中的无效模型公式。
当我们在拟合决策树时错误地指定公式中的变量时,会出现错误“ExtractVars 中的模型公式无效” 。它包括在变量名称周围添加引号,同时在rpart方法中指定它们,即拟合决策树模型。为了构建分类树或决策树,R 提供了一个强大的机器学习库,称为 rpart,它实现了递归分区。让我们看一下在 ExtractVars 中抛出错误的示例代码 - Invalid model formula
错误生成
R
# create a data frame
playersData <- data.frame(ponitsEarned=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(ponitsEarned ~ "starsEarned" + "level",
data = playersData)
R
#create a data frame
playersData <- data.frame(ponitsEarned=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(ponitsEarned ~ starsEarned + level, data = playersData)
R
# create a data frame
playersData <- data.frame(ponitsEarned=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(playersData$ponitsEarned ~
playersData$starsEarned +
playersData$level, data = playersData)
输出
Error in terms.formula(formula, data = data) :
invalid model formula in ExtractVars
Calls: rpart …
Execution halted
[Execution complete with exit code 1]
在 ExtractVars 中出现此错误无效模型公式的原因是在 rpart 方法中,我们在变量名 starsEarned 和 level 周围使用了引号。因此,为了在 ExtractVars 错误中修复这个 Invalid model formula 错误,有两种方法可以在下面分别解释。
方法 1:使用消除引号
在 rpart 方法的公式中消除变量名周围的引号是可以接受的,它不会产生任何错误。这是修复错误的最简单方法。所以让我们看看错误修复的代码。
R
#create a data frame
playersData <- data.frame(ponitsEarned=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(ponitsEarned ~ starsEarned + level, data = playersData)
输出
[Execution complete with exit code 0]
输出中的退出代码 0 表示代码执行时没有错误。
方法2:使用标准符号/常规
修复错误的另一种方法是使用标准符号/常规格式来访问 rpart 方法中指定数据帧中的列。这种方法被广泛使用,因为编码中的每一个都遵循标准符号。下面是执行没有错误的代码。
R
# create a data frame
playersData <- data.frame(ponitsEarned=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(playersData$ponitsEarned ~
playersData$starsEarned +
playersData$level, data = playersData)
输出
[Execution complete with exit code 0]