将R中二进制因子的向量重新编码为虚拟变量(0,1)

时间:2016-02-21 00:00:27

标签: r

我有一个矢量(实际上是数据框的一列),如下所示:

data$outcome
[1] Good Good Good Good Poor
Levels: Good Poor

以下是str

str(data$outcome)
 Factor w/ 2 levels "Good","Poor": 1 1 1 1 2

我不希望as.numeric(data$outcome) [1] 1 1 1 1 2

中的1和2

我知道你不应该为回归“手动”虚拟编码变量,我知道{psych} dummy.code(),它返回一个矩阵。我知道我可以在data.frame上使用类似model.matrix()的内容:

data$outcome <- model.matrix(lm(s100b ~ outcome, data))[,2]

不太好......

在R的某处是不是有dummify(data$outcomes)之类的东西?请不要轻易开玩笑......

1 个答案:

答案 0 :(得分:2)

我稍微喜欢

data$isGood <- as.numeric(data$outcome == 'Good')

因为它更明确/更不透明,即使有人为该因素添加了一个新级别'Awesome',它仍然可以工作。