2016-08-02 478 views
0

我希望这个问题不是题目。 我知道如何在R中编写一个虚拟变量,但是,我想知道是否可以在Excel中创建它。比方说,我有一个颜色变量下的3种颜色(红色,蓝色,黄色)列表。 R会将其作为3个级别的因素导入。Excel虚拟变量R

现在,如果我想在Excel中做到这一点,我可以做出3个新的预测变量(而不是颜色,现在变成红色,蓝色和黄色),如果它是红色,则置1红色,否则为0上?或者R会继续将其解释为3个独立因素,每个因素有2个等级?

+0

@ZheyuanLi所以你的意思是把它们导入为'df $ red < - as.numeric(df $ red)'或者类似 – Danib90

回答

2

因此,您在Excel中手动创建三个虚拟列,并且想要将它们导入到R中?如果您稍后将这些列导入为数字而不是因子,则不会有任何问题。

那么,我还是要提醒你R可以通过model.matrix()将因子编码为虚拟变量。所以从来没有必要自己做这件事。在excel中使用带有“红色”,“蓝色”和“黄色”的单个列是绝对可以的,并将其导出到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.matrix - 我怎样才能将其纳入我的模型?当我调用线性模型(例如)lm(response ~ predictor.1 + predictor.2 + colour)时,它会自动调用虚拟变量还是需要将model.matrix分配给矢量?

model.matrix是一个服务例程,用于模型拟合例程像lmglm等。用户可以简单地使用一个公式,则模型矩阵将幕后来构造。所以,你甚至不需要自己获得一个模型矩阵。

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

+0

的问题。对于颜色和其他因子变量使用model.matrix - 我怎样才能将它融入到我的模型中?当我调用线性模型(例如)'lm(response_redictor.1 + predictor.2 + color)'时,它会自动调用虚拟变量还是需要将model.matrix分配给向量? – Danib90

+0

我刚刚使用'lm'函数作为例子。我实际上试图在我的实际数据集中使用虚拟变量进行渐变增强。 – Danib90