在删除 NA 的同时向量化加法

Vectorize addition whilst removing NA

我正在尝试将标量添加到向量中。但是,当我的标量为 NA 时,我希望它被忽略,类似于 sum.

中使用的 na.rm = TRUE 参数

1:3 + x

returns NA NA NA 如果 x 已分配 NA。我想 return 1 2 3。 我试过了

sum(1:3, NA, na.rm = T)

但这并没有矢量化加法,只是 returns 1+2+3 = 6.

有什么好的方法可以做到这一点吗?

谢谢

您可以使用 replace :

x <- NA
1:3 + replace(x, is.na(x), 0)
#[1] 1 2 3

x <- 2
1:3 + replace(x, is.na(x), 0)
#[1] 3 4 5