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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
* Этот синтаксис случайным образом распределяет объекты по вариантам
эксперимента и может быть для полностью рандомизированных планов эксперимента
(количество объектов на вариант эксперимента может быть равным или неравным).
* Для эксперимента с рандомизироваными блоками (простой схемы или обобщённой), а
также для полностью рандомизированных экспериментов с равным числом объектов на
эксперимент можно использовать следующий синтаксис:
http://www.spsstools.ru/Syntax/BlockDesign/RandomAssignmentOfUnitsToExpTreatment
s.txt

* В данном примере у нас есть 3 варианта условий эксперимента (A, B, and C) с 8,
9 и 6 объектами соответственно.


DATA LIST LIST /TREAT(A20) N_TREAT(F8.0).
* Задаём названия вариантов и число объектов в каждом из них.
BEGIN DATA
A 8
B 9
C 6
END DATA.

LOOP CASES=1 TO N_TREAT.
XSAVE OUTFILE="c:\\temp\\OUTF1"/KEEP=TREAT.
END LOOP.
EXECUTE.
GET FILE="c:\\temp\\OUTF1".

SET SEED RANDOM.
COMPUTE RANDOM=RV.UNIFORM(0,1).
SORT CASES BY RANDOM(A).
RANK VARIABLES=RANDOM(A).
COMPUTE ID=RRANDOM.
FORMATS ID(F8.0).
LIST ID TREAT.
SORT CASES BY TREAT (A) ID (A).
SPLIT FILE SEPARATE BY TREAT.
LIST ID.




* Замечание 1:
* Можно вводить любые имена вариантов (с длиной имён до 20 символов). Например,
задать
* полностью рандомизированный факторный план с 4 вариантами и 15 объектами в
каждом:
*    […]
*    BEGIN DATA
*    A1B1 15
*    A1B2 15
*    A2B1 15
*    A2B2 15
*    END DATA.
*    […].



* Замечание 2:
* Если у вас есть N объектов и p вариантов эксперимента и вы хотите, чтобы SPSS
случайно приписала объекты к вариантам (предварительно случайно определив
количество объектов на вариант), используйте следующий синтаксис.
* Пример: 40 объектов и 6 вариантов эксперимента (A, B, C, D, E and F).


DATA LIST FREE /TREAT(A20).
* Задаём имена вариантов (A, B, C, D, E и F в данном примере).
BEGIN DATA
A B C D E F
END DATA.
COMPUTE TREATM=$CASENUM.
SAVE OUTFILE=OUTF1.

INPUT PROGRAM.
* Задаём N (общее число объектов: 40 в данном примере).
LOOP N_CASES=1 TO 40.
END CASE.
END LOOP.
END FILE.
END INPUT PROGRAM.

* Задаём число вариантов (6 в данном примере).
COMPUTE N_TREAT=6.
SET SEED RANDOM.
COMPUTE LIM=N_TREAT+.5.
COMPUTE RANDOM1 = RV.UNIFORM(0.5,LIM).
COMPUTE TREATM=RND (RANDOM1).
SORT CASES BY TREATM (A).
MATCH FILES/FILE=*/TABLE=OUTF1/BY TREATM.
SET SEED RANDOM.
COMPUTE RANDOM2 = RV.UNIFORM(0,1).
SORT CASES BY RANDOM2 (A).
COMPUTE ID=$CASENUM.
EXECUTE.
FORMATS ID(F8.0).
LIST ID TREAT.
SORT CASES BY TREAT (A) ID (A).
SPLIT FILE SEPARATE BY TREAT.
LIST ID.