假设我们有一个data.frame:
> df <- data.frame(A = c('a','a','b','c','c','b','a'), B = c('d','e','e','e','f','f','g'))
打印我们将获得的值:
> df
A B
1 a d
2 a e
3 b e
4 c e
5 c f
6 b f
7 a g
在申请model.matrix
时,它会:
> d <- model.matrix(~.,df)
> d
(Intercept) Ab Ac Be Bf Bg
1 1 0 0 0 0 0
2 1 0 0 1 0 0
3 1 1 0 1 0 0
4 1 0 1 1 0 0
5 1 0 1 0 1 0
6 1 1 0 0 1 0
7 1 0 0 0 0 1
现在,正如我们在因素df$A
中看到的那样, 3 唯一字符,即(a,b,c)。但是,在其等效的 model.matrix 中,我们有Ab
,Ac
。同样,如果df$B
,则Bd
缺失。
所以,我的问题是,如果我忽略了model.matrix
,我们如何才能在Intercept
表示中所有 ?