根据其他两列的条件创建新列

Creating new column based on conditions of two other columns

我是 R 的新手,在处理数据集时遇到了一些问题。我需要根据其他两列的条件在我的数据集中创建一个新列。

我有一个值为 0 或 1 的列“is_3t_mine”和另一个值为 0 或 1 的列“is_gold_mine”。

我需要满足条件的第三列“dfa_mine”;

if is_3t_mine == 0 & is_gold_mine == 0 那么“dfa_mine”= 0 所有其他迭代“dfa_mine”= 1

我一直在尝试使用 dplyr 的管道功能来完成此操作,但没有取得任何成功。

我们可以使用

df1$dfa_mine <- with(df1, +(!(is_3_mine == 0 & is_gold_mine == 0)))

这里有 4 种方法可以专门完成您想要做的事情。

  1. 最简单

    df1$dfa_mine1 <- 1- as.numeric(df1$is_3t_mine == 0 & df1$is_gold_mine == 0)
    
  2. 使用相反的条件。但它更直接。

     df1$dfa_mine2 <- as.numeric(df1$is_3t_mine == 1 | df1$is_gold_mine == 1)
    
  3. 利用零为吸收元素的属性乘法

     df1$dfa_mine3 <- 1- ((1-df1$is_3t_mine)%%2) * ((1-df1$is_gold_mine)%%2)
    
  4. 用 $ 符号重写 akrun 的答案。

     df1$dfa_mine4 <- with(df1, +(!(df1$is_3t_mine == 0 & df1$is_gold_mine == 0)))