【问题标题】:How to create a dummy variable in R using ifelse() command如何使用 ifelse() 命令在 R 中创建虚拟变量
【发布时间】:2018-09-22 22:33:11
【问题描述】:

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

【问题讨论】:

  • 我觉得你有XY problem。也许您需要一个代表餐厅类型的因素。然后将 lm 与 y~reviews+type 一起使用。

标签: r rstudio


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    df$Vegan = as.integer(d$type == "Vegan")
    

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 2023-03-24
      • 2013-09-23
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多