【发布时间】:2011-06-01 10:05:49
【问题描述】:
我有一个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 为因子的每个级别创建虚拟对象?
【问题讨论】: