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
* Реструктурирование файла от "широкого" к "узкому" виду.
* Автор: Raynald Levesque, www.spsstools.net .

* Пример данных для иллюстрации работы.

DATA LIST LIST /id sit1 sit2 sit3 sit4 age.
BEGIN DATA
1  3    4    5     .     29
2   .    3    5    2     31
3  1    3    .     5     18
END DATA.
SAVE OUTFILE='c:\\temp\\mydata.sav'.

* Метод 1.
* Работает с любой версией SPSS.

VECTOR myvector = sit1 TO sit4.
LOOP sit=1 TO 4.
- COMPUTE evaluate=myvector(sit) .
- DO IF NOT SYSMIS(evaluate).
- XSAVE OUTFILE='c:\\temp\\tall data.sav' /KEEP=id age sit evaluate. 
- END IF .
END LOOP.
EXECUTE.

GET FILE='c:\\temp\\tall data.sav'.
LIST.

* Метод 2.
* требуется версия 11 и выше.

GET FILE='c:\\temp\\mydata.sav'.
VARSTOCASES  /MAKE evaluate FROM sit1 sit2 sit3 sit4
 /INDEX = sit "sit"(4)
 /KEEP =  id age
 /NULL = DROP.
LIST.


** Оба метода приводят к следующему представлению данных:

      id      age  sit evaluate

    1.00    29.00    1     3.00
    1.00    29.00    2     4.00
    1.00    29.00    3     5.00
    2.00    31.00    2     3.00
    2.00    31.00    3     5.00
    2.00    31.00    4     2.00
    3.00    18.00    1     1.00
    3.00    18.00    2     3.00
    3.00    18.00    4     5.00