如何将两个含有缺失值的向量合并?

3
我有两个长度相同的向量,我想要合并它们,以便填充彼此缺失的值。例如:
a=c("",1,2,"")
b=c(5,"","",6)

我正在寻找这个输出结果:
5 1 2 6

非常感谢


2
你的向量没有意义,因为它们只能是数字向量或字符向量,不能同时兼备。 - Alex
4
@alex - 它们确实有效,但被强制转换为字符。不确定原帖作者是否意识到这一点。 - thelatemail
5个回答

5

在这种情况下,通常通过pmax进行的数字比较也可以使用:

as.numeric(pmax(a,b))
#[1] 5 1 2 6

这是因为在处理字符数据时,R会采用字母数字排序来进行max/min等操作:

max(c("b","a"))
#[1] "b"

5

并且:

as.numeric(paste(a,b))
[1] 5 1 2 6

4

或者:

a[a==""] <- b[b!=""]
as.numeric(a)
# [1] 5 1 2 6

3
a[a == ""] <- 0
b[b == ""] <- 0

a <- as.numeric(a)
b <- as.numeric(b)

output <- a + b

3
as.numeric(ifelse(a != "", a, b))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接