根据其他两列的条件创建新列
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 种方法可以专门完成您想要做的事情。
最简单
df1$dfa_mine1 <- 1- as.numeric(df1$is_3t_mine == 0 & df1$is_gold_mine == 0)
使用相反的条件。但它更直接。
df1$dfa_mine2 <- as.numeric(df1$is_3t_mine == 1 | df1$is_gold_mine == 1)
利用零为吸收元素的属性乘法
df1$dfa_mine3 <- 1- ((1-df1$is_3t_mine)%%2) * ((1-df1$is_gold_mine)%%2)
用 $ 符号重写 akrun 的答案。
df1$dfa_mine4 <- with(df1, +(!(df1$is_3t_mine == 0 & df1$is_gold_mine == 0)))
我是 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 种方法可以专门完成您想要做的事情。
最简单
df1$dfa_mine1 <- 1- as.numeric(df1$is_3t_mine == 0 & df1$is_gold_mine == 0)
使用相反的条件。但它更直接。
df1$dfa_mine2 <- as.numeric(df1$is_3t_mine == 1 | df1$is_gold_mine == 1)
利用零为吸收元素的属性乘法
df1$dfa_mine3 <- 1- ((1-df1$is_3t_mine)%%2) * ((1-df1$is_gold_mine)%%2)
用 $ 符号重写 akrun 的答案。
df1$dfa_mine4 <- with(df1, +(!(df1$is_3t_mine == 0 & df1$is_gold_mine == 0)))