0

I hope this question isn't off topic. I know how to code a dummy variable in R, however, I was wondering if I could create it in excel. Lets say I have 3 colors (red, blue, yellow) list under a color variable. R would import this as a factor with 3 levels.

Now if I wanted to do this in excel could I make 3 new predictors (instead of color they now become red, blue, and yellow) and place a 1 in the red column if it is red and 0 otherwise and so on? Or will R continue to interpret this as 3 individual factors with 2 levels each?

4

1 回答 1

2

因此,您在 excel 中手动创建三个虚拟列,并希望将它们导入 R?如果您稍后将这些列作为数字而不是因子导入,则不会有问题。

好吧,我仍然需要提醒您,R 可以将因子编码为虚拟变量,通过model.matrix(). 所以从来没有必要自己做这件事。在excel中使用带有“red”、“blue”和“yellow”的单列,并将其作为因子导出到R中是绝对可以的。

colour <- gl(3,2,labels=c("red","blue","yellow"))
model.matrix(~ colour - 1)
#  colourred colourblue colouryellow
#1         1          0            0
#2         1          0            0
#3         0          1            0
#4         0          1            0
#5         0          0            1
#6         0          0            1

只是另一个快速的问题。使用model.matrixfor 因子颜色和其他因子变量 - 我如何将其合并到我的模型中?当我调用线性模型(例如)lm(response ~ predictor.1 + predictor.2 + colour)时,它会自动调用虚拟变量还是需要将 model.matrix 分配给向量?

model.matrix是一个服务例程,用于模型拟合例程,如lmglm等。用户可以简单地使用一个公式,然后在幕后构建模型矩阵。因此,您甚至不需要自己获取模型矩阵。

对于高级用户,有时他可能想要使用内部拟合程序lm.fit甚至.lm.fit. 阅读?lm.fit这些例程。这些例程不接受模型公式,而是模型矩阵X和响应向量y。在这种情况下,用户对生成Xy自己负有全部责任。

于 2016-08-02T23:16:07.440 回答