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
/* В моём файле данные по 30 школам. Когда я использую разделения файла для анализа по каждой школе */
/* в отдельность (split file), я получаю сначал 30 частотных таблиц, затем 30 гистограмм, и т.д. */
/* Мне же хочется, чтобы сначала шли ВСЕ результаты по первой школе, затем по второй, и т.д. */

* Ответ: rlevesque@videotron.ca.

*Смоделируем данные для примера.
DATA LIST FREE /school score.
BEGIN DATA
1 19 1 14 1 29 1 20 
2 13 2 24 2 24 2 22 
3 20 3 34 3 27 3 25 
4 40 4 44 4 22 4 26 
END DATA.
LIST.

*Определим макрос, делающий то, что нам нужно.
*//////////////////////.
DEFINE !doit().
!DO !sch=1 !TO 4.
COMPUTE filter_=(school=!sch).
FILTER BY filter_.
* замените следующие команды той статистикой, которая вам нужна.
GRAPH 
	/TITLE=!QUOTE(!CONCAT('Гистограмма для школы номер ',!sch))
	/HISTOGRAM=score .
SUMMARIZE
  /TABLES=score
  /FORMAT=NOLIST TOTAL
  /TITLE=!QUOTE(!CONCAT('Сводка для школы номер ',!sch))
  /MISSING=VARIABLE
  /CELLS=COUNT MEDIAN VAR .
FILTER OFF.
!DOEND
!ENDDEFINE.
*//////////////////////.

*Вызовем макрос.
!doit.