model.matrix生成的行数少于原始data.frame

Yan*_*ang 31 model r matrix dataframe

为什么模型矩阵必须与数据帧具有相同的行数?

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

我试图在文档中寻找提示,但找不到任何东西.提前致谢.

Tom*_*mmy 33

好吧,如果一行中有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
Run Code Online (Sandbox Code Playgroud)

此行为由选项"na.action"控制:

options(na.action="na.fail")
m <- model.matrix(x ~ ., data=d) # Error: missing values in object
Run Code Online (Sandbox Code Playgroud)