【问题标题】:Adding new column to dataframe based on several conditions of two other columns in R根据R中其他两列的几个条件向数据框添加新列
【发布时间】:2019-10-06 09:23:29
【问题描述】:

在数据框中,我有两列 A 和 B。每列中的值可以是 1 或 NA。
我想添加一个名为 C 的第三列,以便:

 - If A == NA AND B == NA, then C = "None"
 - If A == 1 AND B == NA, then C = "A" 
 - If A == NA AND B == 1, then C = "B"
 - if A == 1 AND B == 1, then C = "Both"

【问题讨论】:

  • 见?dplyr::case_when

标签: r tidyverse


【解决方案1】:

只需将您的条件转换为case_when 语句

library(dplyr)

df %>%
  mutate(C = case_when(is.na(A) & is.na(B) ~ "None", 
                       A == 1 & is.na(B) ~ "A",
                       B == 1 & is.na(A) ~ "B", 
                       TRUE ~ "Both"))

【讨论】:

    【解决方案2】:

    我们可以使用ifelse

    library(dplyr)
    df %>%
        mutate(C = ifelse(is.na(A) & is.na(B), "None",
                       ifelse(A== 1 & is.na(B), "A",
                       ifelse(B==1 & is.na(A), "B",
                       "Both"))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2021-07-27
      相关资源
      最近更新 更多