假设我有一个变量,我想从它生成虚拟变量。model.matrix非常有用
model.matrix(~iris$Species-1)但假设我失去了价值
iris$Species[1]=NA
model.matrix(~iris$Species-1)这两个model.matrix输出之间唯一的区别是,第二个输出忽略了NA行。我希望model.matrix将NA视为唯一的值,并为NAs创建一个额外的列。
是否有一种有效的方法来做到这一点,或者我需要编写一个函数才能做到这一点?
发布于 2015-12-16 20:00:58
一个解决方案可能是将您感兴趣的变量转换为一个因素,并且在这样做时不要排除NA:
iris$Species[1] <- NA
mm2 <- model.matrix(~factor(iris$Species, exclude=NULL)-1)
>dim(mm2)
150 4https://stackoverflow.com/questions/34320874
复制相似问题