model.matrix генерирует меньше строк, чем оригинальный data.frame - PullRequest
26 голосов
/ 23 июня 2011

Почему матрица модели не обязательно имеет такое же количество строк, что и фрейм данных?

mergem = model.matrix(as.formula(paste(response, '~ .')), data=mergef)
dim(mergef)
# [1] 115562     71
dim(mergem)
# [1] 66786   973

Я попытался найти подсказки в документации, но ничего не смог найти.Заранее спасибо.

1 Ответ

29 голосов
/ 23 июня 2011

Ну, если в строке есть NA, эта строка (по умолчанию) удаляется:

d <- data.frame(x=c(1,1,2), y=c(2,2,4), z=c(4,NA,8))
m <- model.matrix(x ~ ., data=d)

nrow(d) # 3
nrow(m) # 2

Это поведение контролируется опцией "na.action":

options(na.action="na.fail")
m <- model.matrix(x ~ ., data=d) # Error: missing values in object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...