使用 rpart 时找不到 "Error in eval(predvars, data, env) : object `x` not found" 的解决方案
Can't find a solution to "Error in eval(predvars, data, env) : object `x` not found" when using rpart
我正在尝试 运行 R 中的一个相对简单的模型,例如 fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y)
。这是我的代码和相关数据:
> library(data.table)
> library(tree)
> library(rpart)
> #From the file "KNNCollar_#.txt", just select the columns ACTIVITY_X, ACTIVITY_Y, ACTIVITY_Z and Event
> dataraw<-fread("KNNCollar_41365.txt", select = c("ACTIVITY_X","ACTIVITY_Y","Event"),stringsAsFactors = F,header = TRUE)
> dataset <- matrix(NA,nrow=0,ncol=3)
> #Now, delete all rows containg the string "End"
> dataset<-dataraw[!grepl("End", dataraw$Event),]
> head(dataset)
ACTIVITY_X ACTIVITY_Y Event
1: 19 21 Vigilance
2: 20 14 Vigilance
3: 34 35 Vigilance
4: 18 5 Vigilance
5: 23 27 Vigilance
6: 33 20 Vigilance
> names(dataset)<-c("ACTIVITY_X", "ACTIVITY_Y","Event")
> fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y)
Error in eval(predvars, data, env) : object 'Event' not found
如您所见,我遇到了错误 Error in eval(predvars, data, env) : object 'Event' not found
。
论坛中的其他人一直在询问这个问题,我尝试通过将我的数据帧转换为矩阵来进行调整,从 .txt
中读取它,使用 names
等。在其他帖子中建议。
None 这对我有用。现在我的问题是,这是否只是一个语法错误,还是我的代码存在真正的问题?
希望有人能提供帮助,如有任何建议,我们将不胜感激!
我在互联网上搜索了 "rpart cran",点击了 https://cran.r-project.org/web/packages/rpart link and opened up https://cran.r-project.org/web/packages/rpart/rpart.pdf。跳转到记录 rpart
的页面,它表明该函数接受公式。如果您正在指定一个公式并且您的数据在 data.frame 中,您需要使用 data
参数传入 data.frame。简而言之:
fitTree <- rpart(Event ~ ACTIVITY_X + ACTIVITY_Y, data = dataset)
请注意,我添加了空格,这可以说增强了可读性。
我想您必须将数据库转换为 data frame
并在 rpart
中提及该数据库,即
fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y, data = database)
我正在尝试 运行 R 中的一个相对简单的模型,例如 fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y)
。这是我的代码和相关数据:
> library(data.table)
> library(tree)
> library(rpart)
> #From the file "KNNCollar_#.txt", just select the columns ACTIVITY_X, ACTIVITY_Y, ACTIVITY_Z and Event
> dataraw<-fread("KNNCollar_41365.txt", select = c("ACTIVITY_X","ACTIVITY_Y","Event"),stringsAsFactors = F,header = TRUE)
> dataset <- matrix(NA,nrow=0,ncol=3)
> #Now, delete all rows containg the string "End"
> dataset<-dataraw[!grepl("End", dataraw$Event),]
> head(dataset)
ACTIVITY_X ACTIVITY_Y Event
1: 19 21 Vigilance
2: 20 14 Vigilance
3: 34 35 Vigilance
4: 18 5 Vigilance
5: 23 27 Vigilance
6: 33 20 Vigilance
> names(dataset)<-c("ACTIVITY_X", "ACTIVITY_Y","Event")
> fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y)
Error in eval(predvars, data, env) : object 'Event' not found
如您所见,我遇到了错误 Error in eval(predvars, data, env) : object 'Event' not found
。
论坛中的其他人一直在询问这个问题,我尝试通过将我的数据帧转换为矩阵来进行调整,从 .txt
中读取它,使用 names
等。在其他帖子中建议。
None 这对我有用。现在我的问题是,这是否只是一个语法错误,还是我的代码存在真正的问题?
希望有人能提供帮助,如有任何建议,我们将不胜感激!
我在互联网上搜索了 "rpart cran",点击了 https://cran.r-project.org/web/packages/rpart link and opened up https://cran.r-project.org/web/packages/rpart/rpart.pdf。跳转到记录 rpart
的页面,它表明该函数接受公式。如果您正在指定一个公式并且您的数据在 data.frame 中,您需要使用 data
参数传入 data.frame。简而言之:
fitTree <- rpart(Event ~ ACTIVITY_X + ACTIVITY_Y, data = dataset)
请注意,我添加了空格,这可以说增强了可读性。
我想您必须将数据库转换为 data frame
并在 rpart
中提及该数据库,即
fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y, data = database)