Примеры отбора данных
7.1.7 Примеры отбора данных
Здесь мы представим некоторые примеры отбора данных. Рассмотрим следующие условия:
1. Требуется отобрать только респондентов-мужчин. В редакторе условий вводится следующая строка:
sex = 2
Эту строку можно набрать непосредственно или перенести с помощью кнопки с треугольником и кнопок клавиатуры.
2. Требуется отобрать только респондентов-женщин, которые голосовали за ХДС/ХСС. В редакторе условий вводится следующая строка:
sex = 1 & partei = 1
ИЛИ
sex = 1 AND partei = 1
Обратите внимание на значение переменной фильтра в наблюдении 22 (fragebnr = 0-007). Здесь это системное пропущенное значение. В этом случае SPSS не может сделать никакого вывода об истинности, так как переменная partei имеет значение О = нет данных или данные не введены. Поэтому условие sex =1 & partei = 1 в наблюдении 22 нельзя проверить на истинность. Оно может быть как истинным, так и ложным. Для такого неопределенного случая SPSS присваивает переменной filter_$ системное пропущенное значение.
Следовательно, таблицу истинности можно дополнить случаем отсутствующих значений:
Конъюнкция
Логическое выражение |
Результат |
true AND true |
true |
true AND false |
false |
false AND true |
false |
false AND false |
false |
true AND missing |
missing |
false AND missing |
false |
missing AND missing |
missing |
Дизъюнкция
Логическое выражение |
Результат |
true OR true |
true |
true OR false |
true |
false OR true |
true |
false OR false |
false |
true OR missing |
true |
false OR missing |
missing |
missing OR missing |
missing |
Отрицание:
Логическое выражение |
Результат |
true |
false |
false |
true |
missing |
missing |
Если результат логического выражения равен missing (отсутствует), то данный случай, как и при результате false, не учитывается при дальнейшей обработке.
3. Требуется отобрать только респондентов, имеющих возраст от 40 до 60 лет включительно.
alter >= 40 & alter <= 60
ИЛИ
alter >= 40 AND alter <= 60
Более изящным будет применение здесь функции
RANGE: RANGE (alter, 40, 60).
4. Требуется отобрать только респондентов-женщин, которые старше 60 лет. sex =1 & alter > 60 ИЛИ sex =1 AND alter > 60.
5. Требуется отобрать только респондентов-мужчин, возраст которых не превышает 25 лет и которые голосовали за СДПГ. При формулировке условия не старше 25 лет применяется оператор NOT:
sex = 2 S partei = 3 & ~ alter > 25
ИЛИ
sex = 2 S partei = 3 S NOT alter > 25.
Оператор NOT обязательно должен стоять в начале логического выражения. Выражение & alter ~> 25 не допускается в SPSS. В этом случае вы получите сообщение об ошибке с подсказкой, где должен находиться оператор NOT.
6. Требуется отобрать респондентов, которые голосовали за ХДС, СДП или республиканцев.
partei = 1 | partei = 2 | partei = 6
ИЛИ
partei = 1 OR partei = 2 OR partei = 6.
Здесь более изящным будет применение функции ANY:
ANY (partei, 1, 2, 6).
7. Отберем респондентов, которые опрашивались в Западной Германии:
fragebnr >= "W-"
Здесь более изящным будет применение функции SUBSTR:
SUBSTR (fragebnr,1,1) = "W"
ИЛИ
SUBSTR (fragebnr,1,2) = "W-"
Можно также применить функцию RANGE:
RANGE (fragebnr, W-001, W-999)
ИЛИ
RANGE (fragebnr, "W-001", "W-999").
8. Отберем респондентов, которые опрашивались в Восточной Германии: fragebnr >= "0-" & fragebnr < "W-"
Достаточно также просто ввести
fragebnr < "W-"
И в этом случае изящнее будет вариант с SUBSTRING:
SUBSTR(fragebnr,1,1) = "О"
или
SUBSTR(fragebnr,1,2) = "0-"
Можно также применить функцию RANGE:
RANGE (fragebnr, "O-001", "0-999")
Удобно использовать оператор NOT:
~ fragebnr >= "W"
Далее мы рассмотрим применение функций UPCASE и LOWER. При этом будем исходить из следующей ситуации.: При вводе номеров анкет иногда по ошибке вме-^то прописного "W" для Западной Германии было закодировано строчное "w". Эти наблюдения не будут отобраны по условию SUBSTR(fragebnr, 1,1) = "W". В таком ^лучае может помочь функция UPCASE или LOWER:
SUBSTR (UPCASE (fragebnr,1,1) = "W".
Рассмотренная конструкция называется вложенной функцией. Вложенные функции вычисляются в направлении изнутри наружу. Функция UPCASE преобразует содержимое переменной fragebnr в прописные буквы. Преобразованное содержимое затем передается в функцию SUBSTR. Эта функция выделяет из строки первую букву. Полученная буква сравнивается с буквой W. Если они совпадают, данное наблюдение выбирается, то есть переменная фильтра filter_S приобретает значение 1. Если применяется функция LOWER, строка в редакторе условий будет выглядеть так:
SUBSTR (LOWER (fragebnr, 1,1) = "w".
Функция LOWER преобразует содержимое переменной fragebnr в строчные буквы. Преобразованное содержимое передается в функцию SUBSTR. Эта функция выделяет из строки первую букву. Полученная буква сравнивается с буквой w. Если они совпадают, данное наблюдение отбирается.