将变量重新编码为R中的两个新变量

时间:2014-02-12 14:51:52

标签: r

我有一个包含连续数值和二进制变量B的变量A.我想创建一个新变量A1,如果B = 1则包含与A相同的值,如果B = 2,则包含缺失值(NA)。 非常感谢!

3 个答案:

答案 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