У меня небольшие проблемы с векторными или массивными операциями.
У меня есть три 3D-массива, и я хочу найти их среднее значение.Как я могу это сделать?мы не можем использовать mean()
, поскольку он возвращает только одно значение.
Более важным является то, что некоторые ячейки в массивах имеют NA, что означает, если я просто добавлю их как
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)