我有一個向量或數組操作有點麻煩。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