【问题标题】:Changing binary variables to Yes/No将二进制变量更改为是/否
【发布时间】:2014-01-23 08:42:27
【问题描述】:

所以我有一个要分析的数据框。问题是数据框中有一堆 1 和 0(1 表示是,0 表示否),而不是 Yes/No。如何修改数据框以使其代替 1 和 0 有是和否,以便我可以使用逻辑回归?我确信有一个我没有想到的简单解决方法

谢谢!

【问题讨论】:

  • 逻辑回归的常用方法是使用 1/0 结果。如果您只想运行逻辑回归,则保留 1/0 编码可能没问题。
  • 如果响应为 1/0,逻辑回归将正常工作。我不确定你说的是/否是什么意思 - 你想创建一个因子变量还是什么?

标签: r binary regression


【解决方案1】:

使用?factor

看这个例子

> set.seed(1)
> dummyVariable <- sample(c(0,1), 10, TRUE)  # bunch of 0 and 1
> newVariable <- factor(dummyVariable, levels=c(0,1), labels=c("No", "Yes"))
> newVariable  # this is now a dummy variable ready for regression analysis
 [1] No  No  Yes Yes No  Yes Yes Yes Yes No 
Levels: No Yes

【讨论】:

    【解决方案2】:

    另一种方法来解决这个问题:

    factor(ifelse(dummyVariable, 'Yes', 'No'))
    

    【讨论】:

    • 你应该设置级别,否则结果可能会出乎意料
    【解决方案3】:

    尝试使用gsub

    dummyVariable<-gsub(0,"No",dummyVariable)
    dummyVariable<-gsub(1,"Yes",dummyVariable)
    dummyVariable
    # [1] "No"  "No"  "Yes" "Yes" "No"  "Yes" "Yes" "Yes" "Yes" "No" 
    

    【讨论】:

      【解决方案4】:

      您也可以只使用您的值作为c('no','yes') 向量的索引,在您的值从 0 开始时加 1。

      如果有两个以上的值,这将很容易概括,这对于ifelse 来说效果不佳:

      c('no','yes')[df$col+1]
      

      factor(c('no','yes')[df$col+1],c('no','yes'))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多