Скачиваний:
93
Добавлен:
21.01.2014
Размер:
168.96 Кб
Скачать

Команда 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.

Эта команда очистит память от невыполненных команд.

Соседние файлы в папке Учебник по SPSS, учебное пособие