
- •Глава 2. Статистический пакет для социологических исследований. Общее описпние и поодготовка данных
- •2.1. Структура пакета
- •2.2. Схема организации данных, окна spss
- •2.3. Управление работой пакета
- •Основные команды меню spss:
- •Статусная строка
- •Ввод данных с экрана
- •2.4. Режим диалога и командный режим
- •Командный режим работы с пакетом Основные правила написания команд на языке пакета
- •Порядок выполнения команд
- •Команды Вызова Get и сохранения данных save.
- •Основные Команды описания данных
- •Основные команды преобразования данных
- •Команды compute и if
- •Основные функции и операторы команд compute и if:
- •Работа с неопределенными значениями
- •Функции для неопределенных значений
- •Работа с пользовательскими неопределенными значениями
- •Работа с функциями Missing и Sysmis.
- •Команда recode
- •Команда count
- •Условное выполнение команд.
- •Команда rank
- •Variable labels rangv14 "ранг по доходам"/
- •V14_5 "квинтильные группы по доходам"/
- •Отбор подмножеств наблюдений
- •Команда split file
- •Взвешивание выборки weight
- •Пример 2.1
- •Variable labels oppos 'Степень противостояния ссср и Японии'
- •Value labels oppos 1 'Взаимное' 2 'Одна из сторон' 3 'Нет противостояния'.
- •2.5. Операции с файлами Агрегирование данных (команда aggregate)
- •Функции агрегирования
- •Объединение файлов (merge files)
Команда count
Команда СOUNT подсчитывает число появлений указанных в ней кодов в заданном списке переменных и размещает результат в новую переменную или заменяет содержимое существующей.
Пусть нам необходимо вычислить число разумных вариантов решения проблемы островов (неальтернативный вопрос 7 анкеты о Курильских островах), а затем подсчитать число ответов на все неальтернативные вопросы анкеты.
COUNT nofvari= v7s1 to v7s7 (1 thru 11)/
nofans = v3s1 to v3s8 (1 thru 8) v5s1 to v6s8 (1 thru 8).
Еще пример, по результатам сессии (объекты - студенты, переменные - результаты экзаменов по информатике (I), математике (M), микроэкономике (E), и социологии (S)) необходимо создать переменную M45, в которой будет число пятерок и четверок, встречающихся в перечисленных переменных.
COUNT M45 = I M E S (4,5).
В команде указывается имя переменной, куда будет заноситься результат подсчета, затем, после обязательного знака "=", приводится список переменных, для которых нужно вести подсчет, и далее в круглых скобках приводится список значений переменных, число которых следует пересчитать. Значения строковых переменных должны быть заключены в апострофы. Ключевое слово SYSMIS используется для подсчета системных отсутствующих значений; MISSING позволяет подсчитать все отсутствующие значения - и пользовательские и системные. Команда допускает также ключевые слова LOWEST, HIGHEST и THRU.
Условное выполнение команд.
Команды DO IF, ELSE IF, ELSE и ENDIF используются для того, чтобы сделать преобразование переменных на подмножествах объектов сразу несколькими командами.
Пусть, например, в файле "Курильские острова" требуется проинтервалировать возраст (v9), но так, чтобы интервалы отделяли пенсионный возраст, который различен для мужчин и женщин (v8):
Таблица 2.1. Интервалы для мужчин и женщин
Интервалы возраста |
1 |
2 |
3 |
4 |
5 |
Мужчины |
до 18 |
до 33 |
до 45 |
До 60 |
>60 лет |
Женщины |
до 18 |
до 33 |
до 45 |
До 55 |
>55 лет |
DO IF (v8=1).
Recode v9 (lo thru 18=1)(18 thru 33=2)(33 thru 45=3)(45 thru 60=4)(60 thru hi=5) into w9.
Else if (v8=2).
Recode v9 (lo thru 18=1)(18 thru 33=2)(33 thru 45=3)(45 thru 55=4)(55 thru hi=5) into w9.
END IF.
Здесь для мужчин в переменной w9 получаются одни интервалы значений, для женщин - другие. Если бы не было неопределенных значений v8, можно было бы вместо "Else if (v8=2)." использовать просто "Else".
Заметим, что команды RECODE и COUNT непосредственно не могут выполняться на подвыборках объектов, но с командами DO IF и END IF их выполнение возможно. Именно это используется при задании таких условных команд из диалоговых окон.
Напомним, что команды, запущенные без команды Execute, накапливаются в памяти, но не выполняются (Transformations pending в статусной строке). Поэтому, из-за ошибки между DO IF и END IF, в память попадает только DO IF. После исправления ошибки и запуска программы оказывается больше запущенных команд DO IF, чем END IF, и сообщение об ошибке повторяется. Это следствие того, что команды IF, COMPUTE, COUNT, RECODE преобразуют данные не сразу, а после запуска команды EXECUTE.
Для того, чтобы справиться с этой ситуацией, следует запустить отдельно команду
CLEAR TRANSFORMATIONS.
Эта команда очистит память от невыполненных команд.