如何使用ifelse()命令在R中创建虚拟变量

时间:2018-09-22 22:33:12

标签: r rstudio

我正在尝试为R创建一个虚拟变量。问题是在我的餐馆“类型”数据集中有许多类别变量。其中,我希望素食餐厅的值是1,其余的值为0。因此,当我运行回归汇总时,我得到了截距,而b1为reviews_number,b2为素食餐厅。例如,非素食餐厅将为y = b0 + b1(reviews_number),而素食餐厅将为y = b0 + b1(reviews_number)+ b2(素食主义者)。提示是使用ifelse()命令,但是我似乎无法将系数简化为3。否则,我需要分别为每种类型的餐厅创建一个值...

2 个答案:

答案 0 :(得分:0)

假设您的数据帧称为df,则可以使用以下方法创建虚拟变量(Vegan):

df$Vegan <- ifelse(df$type == "Vegan", 1, 0) # where variable type is type of restaurants 

但是,您应该注意,如果将type存储为因子,则还可以使用 y = b0 + b1(reviews_number)获取每种类型餐厅的系数(与参考水平相比) )+ b2(类型),即y~reviews+type,如@mlt所指向。

答案 1 :(得分:0)

如果您只需要一个虚拟变量,将纯素食主义者与非纯素食主义者区分开,那么您可以这样做:

{{1}}