2015-05-01 6 views
0

У меня есть массив, который я хочу добавить годы и месяцы последовательно с использованием программы SAS:SAS Создание записей по группам

Original: 
ID 
1 
2 
3 


End result: 
ID YEAR; MONTH 
1 2014 11 
1 2014 12 
1 2015 1 
1 2015 2 
1 2015 3 
2 2014 11 
2 2014 12 
2 2015 1 
2 2015 2 
2 2015 3 
3 2014 11 
3 2014 12 
3 2015 1 
3 2015 2 
3 2015 3 

Мне также нужно установить верхний нижний пределы годы и месяцы, которые я хочу для добавления в таблицу.

Любая помощь приветствуется. Благодаря!

+2

Покажите нам некоторый код – Anton

+0

Доброе утро, как и @Anton сказал, вы должны показать, что вы уже пробовали, это помогает нам понять логику вы пытаются взять, не выполняя всю работу за вас. –

ответ

0

Как следует из комментариев, я немного задумываюсь над тем, что вы ищете. Из того, что вы просите, я бы рекомендовал использовать шаг данных для прокрутки исходных данных, выводя несколько строк для каждой строки в исходных данных.

Это использует intnx, чтобы перейти к следующему месяцу (intnx documentation)

*Enter start and end date here; 
%Let startdt = '01NOV2014'd; 
%Let enddt = '01MAR2015'd; 

data want (drop=_date); 
    set original; 

    *Create multiple records for each observation in 'original'- one for each month; 
    _date = &startdt; 
    DO UNTIL (_date > &enddt); 
     year = year(_date); 
     month = month(_date); 
     output; 

     *Advance to next month; 
     _date = intnx('month', _date, 1, 'beginning'); 
    END; 
run; 
Смежные вопросы