Я разделил свой набор данных на наборы данных для тестирования и обучения. Я попытался подогнать регрессию к тренировочному набору, а затем использовать прогнозирование на тестовом наборе. Когда я это делаю, я получаю сообщение об ошибке, в котором говорится: «Ошибка в факторе model.frame x имеет новые уровни». Я знаю, что это потому, что в моих тестовых данных есть уровни, которых нет в моих обучающих данных.
Что я хочу сделать, так это просто исключить или игнорировать уровни, которых нет в обоих наборах данных. Я пытался сделать это, но он не устанавливает никаких уровней в NA
, а объект id
говорит «целое (пусто)»:
id <- which(!(test$x %in% levels (train$x))
train$x[id] <- NA
fit <- lm(y ~ x, data=train)
P <- predict(fit,test)