【问题标题】:Recode categorical variable to binary (0/1)将分类变量重新编码为二进制 (0/1)
【发布时间】:2013-04-08 07:06:05
【问题描述】:

有人可以帮助我了解ifelse的使用。

我有一个 data.frame (dat) 和一个名为 Q1 (dat$Q1) 的分类变量/因子。 dat$Q1 被编码为 1,2,3 或 4。我需要根据以下规则创建一个新列 data$new1

如果dat$Q1 == 3 那么dat$new1 应该是1。否则,dat$new1 应该是 0

请问最有效的方法是什么?

【问题讨论】:

    标签: r recode


    【解决方案1】:

    使用ifelse,如:

    dat$new1 <- ifelse(dat$Q1==3, 1, 0)
    

    【讨论】:

    • 感谢您的快速响应!!刚接触这个网站,但我印象非常深刻:-)
    【解决方案2】:

    只是:

     dat$new1 <-  0+(dat$Q1==3)  # or use as.numeric(.)
    

    【讨论】:

    • as.numeric 具有使用 microbenchmark 的优势。它似乎也更惯用。 +1
    • 同意,如果目标是 2 和 1,则使用 1+as.numeric(dat$Q1==3)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多