我有一个包含130个变量的4000多个观测值的数据集,其中大约一半的变量缺失,我尝试使用下面的代码,它创建了5个插补数据集:
mice(data_frame, method = c(rep("pmm", 130)), m = 5, maxit = 5)
然而,这段代码只对数字变量进行插补,对分类变量没有任何作用;它忽略了分类变量。
我想问题可能是我对所有数据都使用了预测均值匹配,而且它只适用于数值数据,但我在一个较小的数据集上测试了它,它似乎能够在使用PMM时插补分类数据以及数值数据。所以我很难理解为什么代码忽略了我的分类变量。我尝试了“logreg”和“polyreg”对其中一些变量,但他们还是被忽视了。
有什么想法吗?
1条答案
按热度按时间wpx232ag1#
我发现了我的问题:我的变量是
character
类而不是factor
类,MICE算法忽略字符类。一旦我将所有变量转换为因子,上面的代码就可以正常工作。我对需要成为因子的变量使用sapply
,以使事情变得更容易。