将两个向量合并为'或'

时间:2014-08-20 13:14:46

标签: r

我有2个向量,每个向量都有一些NA值。

a <- c(1, 2, NA, 3, 4, NA)
b <- c(NA, 6, 7, 8, 9, NA) 

我希望将这两者与a结果结合使用,如果结果为非NA,则使用a中的值,否则为b的值。

所以结果如下:

c <- c(1, 2, 7, 3, 4, NA)

我怎样才能在R中有效地做到这一点?

2 个答案:

答案 0 :(得分:2)

怎么样:

> c <- ifelse(is.na(a), b, a)
> c
[1]  1  2  7  3  4 NA

答案 1 :(得分:1)

尝试

a[is.na(a)] <- b[is.na(a)]
a
## [1]  1  2  7  3  4 NA

或者,如果您不想覆盖a,请执行

c <- a
c[is.na(c)] <- b[is.na(c)]
c
## [1]  1  2  7  3  4 NA