Допустим, у меня есть данные за 50 лет на каждый день и месяц. У меня также есть столбец, в котором указано максимальное количество осадков за каждый день этого набора данных. Я хочу иметь возможность рассчитать среднемесячное количество осадков и стандартное отклонение для каждого из этих 50 лет. Как бы я выполнил эту задачу? Я рассматривал возможность использования PROC MEANS:
PROC MEANS DATA = WORK.rainfall;
BY DATE;
VAR AVG(max_rainfall);
RUN;
но я не знаю, как дать SAS понять, что я хочу использовать ММ формата ММДДГГ, чтобы указать, с чего начинать и заканчивать вычисление этих средних значений для каждого месяца. Я также не знаю, как я могу сообщить SAS в этом выражении PROC MEANS о том, как правильно форматировать данные, используя MMDDYY10. Вот почему мой код не работает.
Обновление: я также пытался использовать этот оператор,
proc sql;
create table new as
select date,count(max_rainfall) as rainfall
from WORK.rainfall
group by date;
create table average as
select year(date) as year,month(date) as month,avg(rainfall) as avg
from new
group by year,month;
quit;
но и это не решает проблемы, к сожалению. Это дает мне неправильные значения, хотя создает таблицу. Где в моем коде я мог ошибиться? Правильно ли я говорю SAS, что нужно сложить все осадки за 30 дней, а затем разделить на количество дней в каждом месяце? Вот фрагмент моей таблицы.