Предположим, у меня есть 50 лет данных за каждый день и месяц. У меня также есть столбец, в котором указаны максимальные количества осадков за каждый день этого набора данных. Я хочу иметь возможность вычислять среднемесячные осадки и стандартное отклонение для каждого из этих 50 лет. Как бы я выполнил эту задачу? Я рассматривал с помощью PROC ОЗНАЧАЕТ:Средние значения в SAS с датами с использованием месяцев
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 дней, а затем разделить его на количество дней за каждый месяц? Вот фрагмент моего стола.
В примере SQL удалите промежуточный набор данных. Просто подведите итоги непосредственно из исходных данных. – Tom