将因子分配给R中矩阵中的列

时间:2017-11-30 14:48:01

标签: r dataframe matrix imputation

我正在尝试使用missForest包将丢失的数据归入相当大的数据集中。

missForest以具有缺失值的数据矩阵的形式获取数据。列对应于变量和观察的行。因此,我将数据帧转换为矩阵,无意中将所有分类变量转换为数字类型。

有没有人知道如何将矩阵的列指定为因子??

非常感谢!!!

1 个答案:

答案 0 :(得分:0)

好的,让我添加更多细节。

我有一个包含以下列的数据框。

 homt_sub<-homt[c("CASEID","REASON","PSYPROB","SUB2.2","FREQ1","FRSTUSE1","FREQ2","AGEcont","GENDER", "RACE2", "ARRESTS")]

唯一的连续变量是AGEcont。其余的是因素。我必须制作一个使用missForest函数的矩阵。

homt_matrix<-data.matrix(homt_sub, rownames.force = NA)
homt_sub.imp <- missForest(homt_matrix, verbose= TRUE, maxiter = 3, ntree = 20)

我可以从这里提取插补但我得到小数值因为它们被视为连续变量。

model.matrix可能是一个解决方案,但创建如此多的额外变量,得到推算数据然后将其折叠回每个变量后面的一列似乎有点麻烦?我知道有一种方法可以使用因子变量来运行randomForest,但它还不清楚如何去做。

非常感谢