我有一个 data.frame
,其中包含数字和因子变量,如下所示。
testFrame <- data.frame(First=sample(1:10, 20, replace=T),
Second=sample(1:20, 20, replace=T), Third=sample(1:10, 20, replace=T),
Fourth=rep(c("Alice","Bob","Charlie","David"), 5),
Fifth=rep(c("Edward","Frank","Georgia","Hank","Isaac"),4))
我希望建立一个矩阵,将虚拟变量分配给因子并保留数值变量。
model.matrix(~ First + Second + Third + Fourth + Fifth, data=testFrame)
正如预期的那样,当运行
lm
时,它会将每个因子的一个级别作为参考水平留下。然而,我想建立一个matrix
,其中包含所有因子级别的虚拟/指示变量。我正在为glmnet
构建此矩阵,因此我不担心多重共线性问题。是否有一种方法可以让
model.matrix
为每个因子的每个级别创建虚拟变量?