У меня небольшая проблема с операциями с вектором или массивом.R - Vector/Array Дополнение
У меня есть три 3D-массива, и я хочу найти их среднее. Как я могу это сделать? мы не можем использовать mean()
, так как он возвращает только одно значение.
Важнее некоторые из ячеек в массивах NA whic значит, если я просто добавить их как
A = (B + C + D)/3
результатам покажет НС, а также.
Как я могу позволить ему распознать, является ли ячейка 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
}
}
}
Thnk you.
Это уже разрешено.
Самый простой способ исправить это можно показать ниже.
iposst5_sst2[i,j,jfm] <- mean(temp_JFM[i,j,],na.rm=TRUE)
+1 - также, намного быстрее, чем 'apply', если вы работаете с большими массивами, вы можете сделать' rowMeans (D, na.rm = TRUE, dims = 3) ' – flodel