我有一个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))
我想建立一个matrix
将虚拟变量分配给因子并仅保留数字变量的方法。
model.matrix(~ First + Second + Third + Fourth + Fifth, data=testFrame)
如预期的那样,在运行时,lm
这会将每个因子的一个水平作为参考水平。但是,我想为matrix
所有因素的每个层次建立一个带有虚拟/指标变量的。我正在为此建立矩阵,glmnet
所以我不必担心多重共线性。
有没有一种方法可以model.matrix
为每个因子水平创建虚拟对象?