例如,我有如下向量:
a= c(1, NA, NA, 2, 3)
b=c(NA, 1, NA, NA, NA)
c=c(NA, NA, 5, NA, NA)
我希望合并三个向量以获得
d=c(1,1,5,2,3)
有没有一种方法,而无需大量循环?非常感谢 :)
你可以试试
rowSums(cbind(a,b,c), na.rm=TRUE)
#[1] 1 1 5 2 3
或者
mat <- cbind(a,b,c)
mat[cbind(1:nrow(mat),max.col(!is.na(mat)))]
#[1] 1 1 5 2 3
或者
ind <- which(!is.na(mat), arr.ind=TRUE)
mat[ind[order(ind[,1]),]]
#[1] 1 1 5 2 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句