Вставить пропущенные наблюдения (в пределах одного id)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ** Задача - сделать так, чтобы для каждого номера 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. |