Среднее по 24 значениям в массиве r - PullRequest
0 голосов
/ 29 октября 2018

У меня есть годовые данные в большом массиве измерения 3 с именем tmp_array [1: 143, 1: 134, 1: 8760], первые два измерения относятся к координатам, а третье измерение относится к часовым температурам. В конце я хотел бы получить среднесуточную температуру (средняя температура за 24 часа) и массив tmp_array [1: 143, 1: 134, 1: 365]. Вот код, который я положил на место, но я, кажется, далеко от учетной записи.

temp<-apply(tmp_array, MARGIN=c(1, 2), mean)

Этот код, кажется, дает мне среднее значение за год. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 октября 2018

Насколько я вижу здесь, вы получаете среднюю температуру за 8760 часов в году для каждой координаты, двумерный массив [143,134].Хотели бы вы получить один и тот же результат для каждого дня года?В этом случае вы можете сначала создать пустой массив для хранения ваших результатов

new.array <- array(dim=c(143,134,24))

Затем вы можете взять среднее из 24 наблюдений по очереди по марже 3, получая среднюю температуру за день.

library(abind)
new.array <- array(dim = c(143, 134))
for (i in seq(1, 8760, 24)) {
new.array <- abind::abind(new.array,  apply(my.array[1:143, 1:134, i:(i+23)], MARGIN=c(1, 2), mean), along = 3)
}
dim(new.array)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...