2015-08-12 3 views
1

Я пытаюсь выполнить регрессию в наборе данных, который имеет значения NULL. Например, я бегу следующее:Обработка значений NULL в регрессии R

reg2<-lm(yvar~xvar1+xvar2,data=test_all) 

И я получаю следующее сообщение об ошибке:

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) cases

Я думаю, что я получаю эту ошибку, потому что некоторые переменные имеют NULL в некоторых случаях. Есть ли способ обойти это? Спасибо.

+0

Не могли бы вы поделиться некоторыми из ваших данных с dput? Не проверено, но вы можете попробовать 'reg2 <-lm (yvar ~ xvar1 + xvar2, data = test_all, na.action = na.omit)', но вам может потребоваться, чтобы все ваши значения 'NULL' были' NA' – erasmortg

ответ

0

Вы могли бы R падение все наблюдения, содержащие NULL, NaN, NA и т.д., вызывая lm таким образом:

reg2 <- lm(yvar~xvar1 + xvar2, data = test_all[complete.cases(test_all),]) 

complete.cases дает вектор, содержащий TRUE, если строка в кадре данных содержит только реальные данные, и FALSE, если он содержит по меньшей мере один номер NULL и т. д.

Следует помнить, что если в вашем фрейме данных содержится столбец, который вы не используете в своей строке ar, но который делает, содержит недостающее значение, эта строка будет удалена из вашего фрейма данных. Вы не хотите, чтобы это произошло.

Если это так, то вам нужно будет сделать что-то вроде этого:

test_all2 <- test_all[,c("yvar", "xvar1", "xvar2")] 
reg2 <- lm(yvar ~ xvar1 + xvar2, data = test_all2[complete.cases(test_all2),]) 
+0

Большое спасибо за вашу помощь! – OGo238

Смежные вопросы