Не удается найти решение «Ошибка в eval (predvars, data, env): объект` x` не найден »при использовании rpart - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь запустить относительно простую модель в 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 голосов
/ 20 февраля 2019

Полагаю, вам придется преобразовать базу данных в data frame и указать эту базу данных в rpart, т. Е.

fitTree<-rpart(Event~ACTIVITY_X+ACTIVITY_Y, data = database)
0 голосов
/ 20 февраля 2019

Я искал в интернете "rpart cran", щелкнул ссылку https://cran.r -project.org / web / packages / rpart и открыл https://cran.r -project.org / web/packages/rpart/rpart.pdf.Переход на страницу, где задокументировано rpart, показывает, что эта функция принимает формулу.Если вы указываете формулу И ваши данные находятся в data.frame, вам нужно передать data.frame, используя аргумент data.Вкратце:

fitTree <- rpart(Event ~ ACTIVITY_X + ACTIVITY_Y, data = dataset)

Обратите внимание, что я добавил пробелы, которые, возможно, улучшают читабельность.

...