R:选择一个不NA


a <- c(4,NA,12,16,NA)
b <- c(1,2,3,NA,NA)
result <- c(1,2,3,16,NA)

对于两个向量a和b,我想要向量结果:最小的一对一。如果是NA,请选择另一个。如果它们都是NA,则元素是NA。
例如,对于a和b的第一个元素,1是次,然后是4,向量结果的第一个单元的结果是1。结果的第二个元素是2,因为a的第二元素是NA。结果的最后一个元素是NA,因为a和b都是NA。

为了获得矢量结果,R的代码是什么?

你的意思是这样的吗:

a <- c(4,NA,12,16,NA)
b <- c(1,2,3,NA,NA)
dd <- data.frame(a,b)
dd
dd$results <-  ifelse(dd$a<dd$b|is.na(dd$a)|(!is.na(dd$a)&is.na(dd$b)),
ifelse(is.na(dd$a),dd$b,dd$a),
dd$b)