** Задача - сделать так, чтобы для каждого номера id присутствовали записи четырёх кварталов.
** Автор: rlevesque@videotron.ca.
data list free / id quarter wages.
*id - номер работника, quarter - квартал, wages - жалованье за данный квартал - примеч. пер.
begin data
1 1 6000
1 3 6100
2 1 7000
2 2 7200
2 4 7150
end data.
*Данные должны быть отсортированы.
SORT CASES BY id quarter.
SAVE OUTFILE='c:\\temp\\data temp.sav'.
AGGREGATE
/OUTFILE=*
/BREAK=id
/quarter = N(quarter).
* Создадим файл, где для каждого номера id будут присутствовать все 4 квартала.
LOOP qtr=1 TO 4.
+ XSAVE OUTFILE='temp.sav' /KEEP=id qtr.
END LOOP.
EXECUTE.
GET FILE='temp.sav'.
RENAME VARIABLE (qtr=quarter).
* Сольём 2 файла для восполнения недостающих записей.
MATCH FILES /FILE=*
/FILE='C:\\temp\\data temp.sav'
/BY id quarter.
EXECUTE.