逐个元素组合两个向量

我有2个向量,例如:

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

我想将它们组合起来,以便生成矢量

1,2,3,4,NA,NA,-1

那是

>当位置i中的任一矢量中只有1个值(比如说X)存在(另一个是NA)时,新矢量应该在位置i取值X.
>当两个值在位置i处都是NA时,新矢量应该在位置i处取值NA
>当两个向量在位置i处具有值时,新向量应在位置i处取值-1.

我可以通过循环轻松完成此操作,但在大型数据集上它非常慢,所以任何人都可以提供快速的方法来执行此操作吗?

最佳答案
这些命令创建向量:

X <- A
X[is.na(A)] <- B[is.na(A)]
X[is.na(B)] <- A[is.na(B)]
X[!is.na(A & B)] <- -1

#[1]  1  2  3  4 NA NA -1

转载注明原文:逐个元素组合两个向量 - 代码日志