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
* Многие макросы включают процедуры, выполнение которых требует открытого файла данных в редакторе,
* даже если они и не используют данные.
* Команда DATA LIST для определения новго файла не работает внутри макроса, но вместо неё можно использовать
* матричный код для выполнения макроса при изначально пустом редакторе.
* Данный макрос использует метод с матричным языком для генерации случайной нормально распределенной переменной.
* Автор: Fernando Cartwright, Оттава, Канада.
* 15.11.2004.

NEW FILE.

DEFINE mymacro (!POS !TOKENS(1))

/*начинаем матричный код*/
MATRIX.
COMPUTE temp=1.
COMPUTE mylength=(!1-1).

/*Цикл по числу записей, указанных при вызове макроса*/
LOOP i=1 to mylength.
COMPUTE temp={temp;1}.
END LOOP.

/*помещаем записи в открытый редактор данных*/
SAVE temp
 /outfile=*
 /variables=temp.
END MATRIX.

COMPUTE random=RV.NORMAL(0,1).
EXECUTE.

!END DEFINE.

/*запускаем макрос, указывая, какое количество записей следует сгенерировать*/

mymacro 15.