在R中,我有两个向量:
a <- c(1, 2, 3, 4)
b <- c(NA, 6, 7, 8)
如何找到两个向量的元素均值,删除NA,没有循环?即我想得到
的载体(1, 4, 5, 6)
我知道函数mean()
,我知道参数na.rm = 1
。但我不知道如何把事情放在一起。可以肯定的是,实际上我有数千个带有NA的向量出现在不同的地方,因此任何依赖于维度的解决方案都不起作用。感谢。
答案 0 :(得分:34)
怎么样:
rowMeans(cbind(a, b), na.rm=TRUE)
或
colMeans(rbind(a, b), na.rm=TRUE)
答案 1 :(得分:3)
我不确定你要求的是什么,但确实
apply(rbind(a,b),2,mean,na.rm = TRUE)
做你想做的事吗?
答案 2 :(得分:1)
使用tidyverse
的{{1}}解决方案:
purrr
对于任意数量的向量:
library(purrr)
a <- c(1, 2, 3, 4)
b <- c(NA, 6, 7, 8)
# expected:
c(1, 4, 5, 6)
#> [1] 1 4 5 6
# actual:
map2_dbl(a,b, ~mean(c(.x,.y), na.rm=T)) # actual
#> [1] 1 4 5 6