7.1.5 Функции
Список функций, который мы сейчас рассмотрим, — следующая важная часть диалогового окна Select Cases: If.
Этот список содержит множество математических функций, большая часть из которых, однако, имеет отношение только к модификации данных (расчету новых переменных). Поэтому обзор этих функций представлен в соответствующем разделе (см. раздел 8.1.2). Здесь мы рассмотрим только логические и строковые функции.
Логические функции
В SPSS реализованы две логические функции:
-
RANGE (variable, begin, end): Функция RANGE возвращает значение 1, или true, если значение переменной лежит в диапазоне между заданными начальным и конечным значениями. Переменная может иметь как численный, так и строковый тип. RANGE (alter, 18, 22) возвращает значение 1, то есть true, если значение переменной alter лежит между 18 и 22 включительно. Можно задавать несколько диапазонов, например, RANGE (alter, 1,17, 63, 99). В этом случае функция возвращает true, если значение переменной alter лежит между 1 или 17 или между 63 и 99 включительно. В функции RANGE можно также использовать переменные строкового типа, например, RANGE (name, A, Mzzzzzz). Тогда функция будет возвращать 1 для имен, начинающихся с букв от А до М включительно. Если имя начинается с другой буквы, функция возвратит 0.
-
ANY (variable, vail, va!2, val3,...): Функция ANY возвращает значение 1, или true, если значение переменной (значение первого аргумента) совпадает по крайней мере с одним из значений, указанных в последующем списке параметров (vail, va!2, va!3, ...). В противном случае возвращается значение 0 или false. Первый элемент, как правило, — переменная численного или символьного типа. Примеры: ANY (jahr, 1991, 1992, 1993, 1994) возвращает true, если значение переменной jahr равно 1991, 1992, 1993 или 1994. ANY (name, Schmidt, Meier, Raabe) возвращает значение true или 1 в тех случаях, когда переменная name содержит значения Schmidt, Meier или Raabe. Во всех остальных случаях возвращается значение 0. Не забывайте заключать строковые значения в двойные кавычки.
Строковые функции
Из общего количества 18 строковых функций мы рассмотрим три самых важных, на наш взгляд.
-
SUBSTR (variable, begin, length): Эта функция извлекает определенную часть из строки. Она возвращает подстроку или отдельный символ. Например, если строковая переменная name содержит значение Mannheim, то следующий вызов функции
SUBSTR (name, 1, 2)
возвратит значение Ма. Здесь из переменной name извлекаются два знака (третий аргумент) начиная с первой позиции (второй аргумент). Выражение
SUBSTR (name, I, 2) = Ma
будет истинным для значений переменной Maus, Mannesmann или Mahlmann. При сравнении со строками вместо двойных кавычек (= "Ма") можно также применять простые (= 'Ма'). Однако смешение простых и двойных кавычек (= 'Ма") не допускается.
-
UPCASE (argument): Функция UPCASE преобразует строчные буквы в прописные. В качестве аргумента можно задавать строку или переменную символьного типа. UPCASE (vorname) возвращает значение ANNA, если переменная vorname имеет значение
Anna.
-
LOWER (argument): Функция LOWER преобразует прописные буквы в строчные.
В качестве параметра можно задавать строку или переменную символьного типа.
-
LOWER (vorname) возвращает значение anna, если переменная vorname имеет
значение ANNA или Anna.
Функции переносятся в редактор условий следующим образом:
-
Поместите курсор на место в условном выражении, на котором должна быть вставлена функция.
-
Дважды щелкните на функции в списке функций или выделите функцию и щелкните на кнопке с треугольником около списка функций.
Функция будет вставлена в выражение. Вместо аргументов в этой функции будут стоять вопросительные знаки. Количество вопросительных знаков указывает минимальное количество аргументов, которое следует вставить. Отредактировать функцию можно следующим образом:
-
Выделите вопросительные знаки во вставленной функции.
-
Замените их соответствующими аргументами. Имена переменных для аргументов можно перенести из списка исходных переменных.
В заключение мы составим список приоритетов при построении логических выражений:
Приоритет
|
Оператор/функция
|
Значение
|
1
|
0
|
Оператор скобок
|
2
|
Функции
|
Различные значения
|
3
|
<
|
Меньше
|
|
<=
|
Меньше или равно
|
|
>
|
Больше
|
|
>=
|
Больше или равно
|
|
=
|
Равно
|
|
"=
|
Не равно
|
4
|
—
|
Логическое НЕ
|
5
|
6,
|
Логическое И
|
6
|
I
|
Логическое ИЛИ
|