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

📅  最后修改于: 2022-05-13 01:54:58.038000             🧑  作者: Mango

如何在 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)


输出

在 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]