我在向量或数组运算方面遇到了一些麻烦。
我有三个 3D 数组,我想找到它们的平均值。我怎样才能做到这一点?我们不能使用mean()
因为它只返回一个值。
更重要的是数组中的一些单元格是 A 这意味着如果我只是将它们添加起来
A = (B + C + D)/3
的结果也将显示 NA。
我怎样才能让它识别单元格是否不适用然后跳过它。
Like
A = c(NA, 10, 15, 15, NA)
B = c(10, 15, NA, 22, NA)
C = c(NA, NA, 20, 26, NA)
我想要这些向量的平均值的输出是
(10, (10+15)/2, (15+20)/2, (15+22+26)/3, NA)
我们也无法使用na.omit
,因为它会移动索引的顺序。
这是对应的代码。我希望这会有所帮助。
for (yr in 1950:2011) {
temp_JFM <- sst5_sst2[,,year5_sst2==yr & (month5_sst2>=1 & month5_sst2<=3)]
k = 0
jfm=4*k+1
for (i in 1:72) {
for (j in 1:36) {
iposst5_sst2[i,j,jfm] <- (temp_JFM[i,j,1]+temp_JFM[i,j,2]+temp_JFM[i,j,3])/3
}
}
}
谢谢。
已经解决了。
纠正它的最简单方法如下所示。
iposst5_sst2[i,j,jfm] <- mean(temp_JFM[i,j,],na.rm=TRUE)