我有一个包含连续数值和二进制变量B的变量A.我想创建一个新变量A1,如果B = 1则包含与A相同的值,如果B = 2,则包含缺失值(NA)。 非常感谢!
答案 0 :(得分:3)
您可以使用ifelse()
:
a1 <- ifelse(B == 1, A, NA)
答案 1 :(得分:1)
您可以使用ifelse
:
A = runif(100)
B = sample(c(0,1), 100, replace = TRUE)
B1 = ifelse(B == 1, A, NA)
您甚至可以忽略== 1
,因为R将0
解释为FALSE
,将任何其他数字解释为TRUE
:
B1 = ifelse(B, A, NA)
虽然== 1
更灵活,但更清楚会发生什么。所以我要采用第一种方法。
答案 2 :(得分:1)
这是一种简单而有效的方法没有ifelse
:
A <- 1:10
# [1] 1 2 3 4 5 6 7 8 9 10
B <- rep(1:2, 5)
# [1] 1 2 1 2 1 2 1 2 1 2
A1 <- A * NA ^ (B - 1)
# [1] 1 NA 3 NA 5 NA 7 NA 9 NA