* Во многих макросах используются процедуры, требующие наличия открытого файла данных в редакторе * даже в том случае, если макрос фактически не использует данные. При этом, например, команда * 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.