我有两列(v1 和 v2),例如:
v1 <- c(0,0,1,0,1,0,0,0,1) v2 <- c(1,1,1,0,1,1,1,0,1)
我想创建一个新列 (V3)。新列与 v2 完全相同,只是如果 v1 中的 1 与 v2 中的 1 匹配,则该值更改为零。因此,所需的解决方案如下所示:
v1 <- c(0,0,1,0,1,0,0,0,1)
v2 <- c(1,1,1,0,1,1,1,0,1)
v3 <- c(1,1,0,0,0,1,1,0,0)
答案 0 :(得分:2)
这能解决您的问题吗?
df$v3 <- ifelse(df$v1 == 1 & df$v2 == 1, 0, df$v2)
答案 1 :(得分:1)
在您的示例中,减法有效:v3 <- v2 - v1
。
如果 v2
中存在 0,v1
中存在 1,则它不起作用,但在您的示例数据中似乎并非如此。如果这是一个问题,您可以修改为 v3 <- v2 - (v1 & v2)
答案 2 :(得分:1)
我们也可以这样做
using
答案 3 :(得分:1)
它似乎对 2
取模,如下所示
> (v1 + v2) %% 2
[1] 1 1 0 0 0 1 1 0 0