我有一个向量或数组操作有点麻烦。R - 矢量/阵列加法
我有三个3D阵列,我想找到它们的平均值。我怎样才能做到这一点?我们不能使用mean()
,因为它只返回一个值。
更重要的是一些在阵列中的细胞是NA whic意思是,如果我只是将它们添加像
A = (B + C + D)/3
的结果将显示NA为好。
我该如何让它识别单元格是否NA然后跳过它。
像
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)
+1 - 同样的,如果你正在处理大数组,你可以使用'applyMe'快得多'rowMeans(D,na.rm = TRUE,dims = 3)' – flodel 2012-03-28 03:56:31