【问题标题】:How to create a binary variable in R?如何在 R 中创建二进制变量?
【发布时间】:2023-03-21 18:23:01
【问题描述】:

我想将 1 分配给包含名称的那个,将 0 分配给缺少的那个。 我尝试使用 ifelse,但无法使其运行。感谢您的帮助。

Individual <- c("Jeff","NA","John","NA","NA")
Outcome: 1 0 1 0 0

【问题讨论】:

    标签: r binary


    【解决方案1】:

    您实际上并不需要ifelse,因为您可以将逻辑值转换为整数。使用:

    Individual <- c("Jeff","NA","John","NA","NA")
    result <- as.integer(Individual != 'NA')
    result
    #[1] 1 0 1 0 0
    

    但是,如果您有实际的NA 值而不是字符串"NA",我们可以使用is.na 进行检查。

    Individual <- c("Jeff",NA,"John",NA,NA)
    result <- as.integer(!is.na(Individual))
    result
    #[1] 1 0 1 0 0
    

    【讨论】:

      【解决方案2】:

      也可以使用ifelse:

      Individual <- c("Jeff","NA","John","NA","NA")
      ifelse(Individual == "NA", 0L, 1L)
      #> [1] 1 0 1 0 0
      

      或者按照 Ronak 的建议NA

      Individual <- c("Jeff", NA, "John", NA, NA)
      ifelse(is.na(Individual), 0L, 1L)
      #> [1] 1 0 1 0 0
      

      我认为ifelse 解决方案更易于阅读。另一方面,Ronaks 解决方案要快得多(即大约 10 倍)。

      reprex package (v1.0.0) 于 2021-02-07 创建

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-06
        • 1970-01-01
        相关资源
        最近更新 更多