使用rpart时找不到“ eval(predvars,data,env)中的错误:找不到对象`x`”的解决方案

时间:2019-02-20 11:35:32

标签: r 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等进行调整,如建议的那样。其他帖子。

这些都不适合我。现在我的问题是,这仅仅是语法错误还是我的代码存在真正的问题?

希望任何建议都会得到大家的帮助!

2 个答案:

答案 0 :(得分:1)

我在互联网上搜索了“ rpart cran”,单击了https://cran.r-project.org/web/packages/rpart链接并打开了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)

请注意,我添加了可以提高可读性的空格。

答案 1 :(得分:0)

我想您将不得不将数据库转换为data frame,并在rpart中提及该数据库,即

fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y, data = database)
相关问题