R中的元素均值

时间:2010-08-16 21:20:08

标签: r mean

在R中,我有两个向量:

a <- c(1, 2, 3, 4)
b <- c(NA, 6, 7, 8)

如何找到两个向量的元素均值,删除NA,没有循环?即我想得到

的载体
(1, 4, 5, 6)

我知道函数mean(),我知道参数na.rm = 1。但我不知道如何把事情放在一起。可以肯定的是,实际上我有数千个带有NA的向量出现在不同的地方,因此任何依赖于维度的解决方案都不起作用。感谢。

3 个答案:

答案 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