Размножить наблюдения x и y раз
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | Требуется переструктурировать файл путём создания новых наблюдений. Мой исходный файл имеет следующую структуру (varF и varM содержат число людей женского и мужского пола в каждой возрастной категории, соответственно). >varAge varF varM >20 1 2 >21 0 0 >22 1 0 >23 1 1 >24 0 1 > Но надо ,чтобы это выглядело так: >varID varAge varGender (Ж=0,М=1) >001 20 0 >002 20 1 >003 20 1 >004 22 0 >005 23 0 >006 23 1 >007 24 1 DATA LIST LIST /varAge varF varM. BEGIN DATA 20 1 2 21 0 0 22 1 0 23 1 1 24 0 1 END DATA. LOOP cnt=1 TO SUM(varF,varM). + COMPUTE vGender=(cnt > varF). + XSAVE OUTFILE='c:\\temp\\data.sav' /KEEP=varAge vGender. END LOOP. EXECUTE. GET FILE='c:\\temp\\data.sav' . COMPUTE varId=$CASENUM. FORMATS varID (N3). LIST varID varage vgender.. * Результат таков: VARID VARAGE VGENDER 001 20.00 .00 002 20.00 1.00 003 20.00 1.00 004 22.00 .00 005 23.00 .00 006 23.00 1.00 007 24.00 1.00 * Примеч.: поскольку верхняя граница индекса cnt цикла LOOP явно задана, * синтаксис будет работать корректно таже если SUM(varF,varM) > параметра MXLOOPS. |