i具有类别列的分类变量。例如,一个值列的字符列都是"是"或"否"。R建模软件包是否会正确处理它们作为标称分类变量,即使我将其作为字符列离开,或者这些软件包要求它们是无序的因素?
每个函数都可以自由执行想要的操作,但是如果该功能使用model.matrix
,则将其视为因素。
2级
x2 <- c("yes", "no", "yes")
model.matrix(~ x2)
给予:
(Intercept) xyes
1 1 1
2 1 0
3 1 1
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$x
[1] "contr.treatment"
3级
x3 <- letters[1:3]
model.matrix(~ x3)
给予:
(Intercept) xxb xxc
1 1 0 0
2 1 1 0
3 1 0 1
attr(,"assign")
[1] 0 1 1
attr(,"contrasts")
attr(,"contrasts")$xx
[1] "contr.treatment"
跟进 @gaborgrothendieck的答案:答案是"通常是",因为大多数统计建模软件包都使用model.matrix()
来处理各种类型的预测指标,交互等。
也就是说,明确转换为因素,以便您控制/知道发生了什么,这可能是最好的做法。缺点是什么?明确转换为因素也允许您控制级别,对比度等的顺序。