Ich habe ein wenig Probleme mit Vektor-oder Array-Operationen.R - Vector/Array Addition
Ich habe drei 3D-Arrays und ich möchte den Durchschnitt von ihnen finden. Wie kann ich das machen? wir können mean()
nicht verwenden, da es nur einen einzelnen Wert zurückgibt.
Umso wichtiger ist, einige der Zellen in den Arrays NA whic bedeuten sind, wenn ich sie so wie
hinzufügenA = (B + C + D)/3
Die Ergebnisse werden auch zeigen, NA.
Wie kann ich es erkennen lassen, wenn die Zelle NA ist, dann überspringen Sie es einfach.
Wie
A = c(NA, 10, 15, 15, NA)
B = c(10, 15, NA, 22, NA)
C = c(NA, NA, 20, 26, NA)
Ich möchte die Ausgabe von durchschnittlich diese Vektoren sein
(10, (10+15)/2, (15+20)/2, (15+22+26)/3, NA)
Wir auch nicht na.omit
verwenden können, weil sie die Reihenfolge der Indizes bewegen wird.
Dies ist der entsprechende Code. Ich wünschte, es wäre hilfreich.
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
}
}
}
Thnk Sie.
Es wurde bereits gelöst.
Der einfachste Weg, um es zu korrigieren, kann unten gezeigt werden.
iposst5_sst2[i,j,jfm] <- mean(temp_JFM[i,j,],na.rm=TRUE)
+1 - auch, viel schneller als 'apply', wenn Sie mit großen Arrays arbeiten, können Sie' rowMeans (D, na.rm = TRUE, Dims = 3) ' – flodel