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.