使用 MICE 后,我在显示因子变量的正确分组时遇到问题。我相信这是一个 R 的东西,但我把它和老鼠一起包括在内只是为了确定。
所以,我运行我的鼠标算法,这里是我如何调用我在鼠标算法中格式化它的一个片段。请注意,我希望它是 0 表示没有药物,1 表示有药物,所以我在运行它之前强制它成为水平 0 和 1 的因素
mydat$drug=factor(mydat$drug,levels=c(0,1),labels=c(0,1))
然后我运行老鼠,它对药物运行逻辑回归(这是默认值),以及我要估算的其他变量。
我可以通过以下方式提取其中一个插补的结果
drug=complete(imp,1)$drug
我们可以查看
> head(drug)
[1] 0 0 1 0 1 1
attr(,"contrasts")
2
0 0
1 1
Levels: 0 1
所以数据肯定是0,1。
但是,当我用它做某事时,比如 cbind,它会变成 1 和 2
> head(cbind(drug))
drug
[1,] 1
[2,] 1
[3,] 2
[4,] 1
[5,] 2
[6,] 2
即使我将其强制为数字
> head(as.numeric(drug))
[1] 1 1 2 1 2 2
我想说它与对比有关,但是当我删除对比时
attr(drug,"contrasts")=NULL
当被其他人调用和打印时,它仍然显示为 1 和 2。
我可以使用 I() 让它正确打印
> head(I(drug))
[1] 0 0 1 0 1 1
Levels: 0 1
所以,我认为这是一个 R 问题,但我不知道如何解决它。使用 I() 是正确的解决方案,还是只是在这里起作用的一种解决方法?使输出显示为 1 和 2 的幕后实际发生了什么?
谢谢