Scripts, скрипты Sax Basic

В начало FAQ Синтаксис SPSS Макросы в SPSS Скрипты в SPSS Python Советы Ссылки по SPSS

Скрипты — сверхмощное средство!

  1. Введение в SPSS-скрипты (также известные как SAX Basic);
  2. Перечень примеров скриптов;
  3. Примеры скриптов;
  4. Программы на Visual Basic (VB).

Введение

Скрипты, или сценарии — достаточно свежая струя в развитии SPSS. Если вы никогда не использовали Visual Basic (VB) или Visual Basic for Applications (VBA), изучение данной возможности программирования покажется вам нелёгким занятием. SPSS использует Sax Basic, разработанный компанией Sax Software. Добавив библиотеку типов (свойств и методов) Sax (Sax's Type Library) в вашу обычную среду разработки (например, VB6, Excel или Access), вы можете создавать сценарии SPSS, используя привычные средства. Таким образом, язык Sax Basic отличается от обычного Visual Basic лишь специальной библиотекой типов.

Скрипты позволяют пользователю сделать то, что нельзя сделать с помощью синтаксиса, например, отформатировать интерактивный график IGRAPH или создать обработчик ошибок. Когда это возможно, я предпочитаю использовать синтаксис вместо скриптов. По мере того, как моё знание синтаксиса росло, я открывал пути делать такие вещи, которые раньше мог делать только через скрипты, например, экспортировать или создать переменную, которая имеет те же метки значений, что и другая переменная. В то время, как синтаксис обрабатывается командным процессором SPSS, скрипты обрабатываются на уровне графической оболочки приложения и оперируют её объектами (документами), их свойствами и методами.

Скрипты могут быть вызваны из синтаксиса и наоборот. Однако важной особенностью здесь является параллельность (или асинхронность) выполнения вызванной программы. Так, например, синтаксис, вызывающий скрипт, не приостанавливается до окончания работы скрипта, а продолжает своё выполнение. При таком параллельном (несогласованном, асинхронном) исполнении этих двух процессов, возможно возникновение ошибок, если в ходе выполнения процессы должны обмениваться данными. Например, синтаксис может попытаться обратиться к результатам работы скрипта в то время, когда второй ещё выполняется (результаты отсутствуют). В некоторых случаях возникновение ошибок будет вовсе не очевидным и пользователь будет озадачен тем, что программа работает без видимых сбоев, но даёт неверные результаты! Таким образом, при комбинировании синтаксиса и скриптов нужно учитывать указанное обстоятельство и составлять программу соответствующим образом. Спасибо Кириллу Орлову за комментарии по данной теме для посетителей русской версии сайта.

Fabrizio Arosio разработал скрипт (см. раздел Утилиты ниже), который заставляет выполнять исходный код и вызываемый скрипт в синхронном режиме (последовательно, один за одним). Эта утилита работает, однако вы должны следить за тем, чтобы в конце синтаксиса не оставалось замыкающих пробелов (иначе возникает бесконечный цикл). См. также раздел «Об асинхронности» для получения дополнительной информации.

Важно отметить, что в версиях SPSS для Макинтош (Mac) скрипты использовать нельзя.


Перечень примеров скриптов

Скрипты сгруппированы по следующим темам:

  1. Автоскрипты 
  2. Работа с редактором данных (объект ISPSSDataDoc)
  3. Диалоги
  4. Распределения
  5. Работа с простым окном результатов (Draft Output)
  6. Величина эффекта
  7. IGRAPH (интерактивные графики)
  8. Импорт и экспорт (см. также соответствующий раздел синтаксиса)
  9. Работа с метками переменных и значений (см. также соответствующий раздел синтаксиса)
  10. Длинные имена переменных (требует версии 12+)
  11. Форматирование выдачи
  12. Работа с окном результатов (Output)
  13. Печать
  14. Мобильные (сводные, pivot) таблицы
  15. Редактор синтаксиса
  16. Специальные операции над данными
  17. Утилиты
  18. Работа с несколькими файлами (см. также соответствующий раздел синтаксиса)

Покажите мне данные, и я найду там ошибки!


Примеры скриптов

NB: Файлы со значком Новое! добавлены или обновлены менее 30 дней назад.


Программы на Visual Basic (VB)


spssrun.exe

Автор программы: Alexis-Michel Mugabushaka из университета Касселя, Германия. Действие программы аналогично SPSS Production's facility. Вы «кормите» её перечнем файлов синтаксиса или указываете файл, содержащий такой перечень. Программа запускает файлы синтаксиса один за другим и создаёт отдельный для каждого синтаксиса файл выдачи, имеющий то же имя, что и файл синтаксиса. См. также Как сделать для каждого синтаксиса свой файл результатов.SBS


ViewSav

ViewSav — кодировочная таблица для файлов данных SPSS. Облегчает просмотр словаря и базовые манипуляции с описанием переменных. Автор программы: Karel Asselberghs с факультета социологии университета Амстердама. На его сайте есть ещё 2 утилиты SPSS: CRC32SAV и LISTSAV. Первая считает и сравнивает контрольную сумму для разных частей файла данных SPSS: заголовка, словаря и самих данных. Это позволяет вам проверить 2 файла с данными на абсолютную идентичность. Вторая утилита выводит переменные и метки их значений в один список (исходный код прилагается).

▲ наверх