我的数据帧 df 中有两个向量,它们是
a = c(TRUE, FALSE, TRUE, TRUE, FALSE)
b = c(1, 2, 3, 4, 5)
我想创建第三个 c 这样
c = c(1, 0, 3, 4, 0)
它是 b,但只要 a 中的元素为 FALSE,就会消失。
我尝试了类似的东西
df$c <- df$b[df$a == TRUE]
它失败了,所以我做了零向量,并试图在 a 为 TRUE 时插入 b 的值,
zv = rep(0, 5)
df$c <- zv[...]
但不知道这里的确切方法。任何帮助将不胜感激。
我们可以否定a
,将FALSE
更改为TRUE
并将这些值分配给0。
b[!a] <- 0
b
#[1] 1 0 3 4 0
我们也可以使用replace
replace(b, !a, 0)
#[1] 1 0 3 4 0
另一种方法是将b
乘以a
,因为TRUE
被强制为 1,FALSE
为 0。
b * a