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