8.1.2 Функции
Из числа функций, которые отображаются в диалоговом окне Select Cases: If, мы рассмотрели только логические и строковые функции. Остальные функции можно разделить на следующие классы:
арифметические функции
статистические функции
функции даты и времени
функции обработки отсутствующих значений
функции извлечения значений наблюдений
статистические функции распределения
функции генерации случайных чисел.
Параметрами функций могут быть переменные, константы или выражения. Параметры заключаются в круглые скобки; несколько параметров отделяются друг от друга запятыми, например, SUM (5, 8, 10). Функция SUM вычисляет сумму трех параметров. SUM (5, 8, 10) возвращает значение 23.
Арифметические функции
ABS (numexpr): Функция ABS возвращает абсолютное значение. Если переменная celsius имеет значение -6,5, ABS (celsius) возвращает 6,5, a ABS (celsius + 3) — значение 3,5.
RND (numexpr): Функция RND округляет до ближайшего целого числа. Если переменная celsius имеет значение 3,6, RND (celsius) возвращает 4, a RND (celsius + 6) — значение 10.
TRUNC (numexpr): Функция отбрасывает дробную часть значения; округления не происходит. Если переменная celsius имеет значение 3,9, TRUNC (celsius) возвращает 3, a TRUNC (celsius + 4) — значение 7.
MOD (numexpr, modulus): Функция MOD возвращает остаток от деления первого аргумента (numexpr) на второй (modulus). Если переменная jaehr имеет значение 1994, MOD (jaehr, 100) возвращает 94.
SQRT (numexpr): Функция SQRT возвращает квадратный корень. Если переменная zahll имеет значение 9, SQRT (zahll) возвращает значение 3.
ЕХР (numexpr): Показательная функция.
LG10 (numexpr): Десятичный логарифм.
LN (numexpr): Натуральный логарифм.
ARSIN (numexpr): Арксинус.
ARTAN (numexpr): Арктангенс.
SIN (numexpr): Синус.
COS (numexpr): Косинус.
В тригонометрических функциях аргументы задаются в радианах.
Статистические функции
Статистические функции могут иметь любое количество параметров.
SUM (numexpr, numexpr,...): Функция SUM возвращает сумму значений допустимых аргументов. SUM (zahll, zahll, zah!3) возвращает сумму значений трех переменных.
MEAN (numexpr, numexpr,...): Функция MEAN возвращает среднее арифметическое допустимых аргументов. MEAN (42, 19, 29) возвращает значение 30.
SD (numexpr, numexpr,...): Функция SD возвращает стандартное отклонение значений допустимых аргументов.
VARIANCE (numexpr, numexpr,...): Функция VARIANCE возвращает дисперсию значений допустимых аргументов.
CFVAR (numexpr, numexpr,...): Функция CFVAR возвращает коэффициент вариации значений допустимых аргументов.
MIN (numexpr, numexpr,...): Функция MIN возвращает наименьшее из значений допустимых аргументов.
MAX (numexpr, numexpr,...): Функция МАХ возвращает набольшее из значений допустимых аргументов.
Функциям SUM, MEAN, MIN и МАХ требуется хотя бы один допустимый аргумент, функциям SD, VARIANCE и CFVAR — два. Остальные аргументы могут содержать отсуттвуюшие значения. Если это свойство, принятое по умолчанию, требуется деактивировать, то к имени функции через точку прибавляют количество необходимых аргументов, например, MEAN. 10. В этом случае значение функции вычисляется только тогда, когда существует хотя бы указанное количество аргументов (в данном примере 10).
Функции даты и времени
В SPSS очень часто в различных целях используются дата и время. Для ввода данных гтого типа в редакторе данных SPSS предоставляет ряд различных форматов, описанных в разделе 3.4.1. Существующие форматы можно просмотреть в диалоговом окне Variable Tуре (Тип переменной).
Мы рекомендует использовать общепринятый формат даты: указание числа месяца двумя цифрами, месяца — также двумя цифрами и года — четырьмя цифрами через течку: dd.mm.yyyy.
Экономии места за счет отбрасывания двух первых цифр года в последнее время, как известно, уделяется много внимания. При указании года двумя цифрами в качестве столетнего диапазона в SPSS принят срок с 1931 по 2030 г., следовательно, год 28 интерпретируется как 2028, а 32 — как 1932. В меню Edit (Правка) Options... (Параметры...) на вкладке Data (Данные) пользователь может самостоятельно задать столетний диапазон..
Если число или месяц можно записать одной цифрой, их не нужно дополнять спереди нулями. Таким образом, указание даты в следующих форматах будет допустимым:
20.6.1998
13.12.1887
1.10.2003
5.2.1997
Компьютер замечает противоречивое указание даты при вводе. Например, если попытаться ввести дату 29.2.1997, это значение не записано принято в ячейку.
Для времени мы рекомендуем формат hh:mm:ss, т.е. одна или две цифры для часов, минут и секунд через двоеточие. При отсутствии секунд можно также применять формат hh:mm. Примеры:
23:34:55
8:5:12
12:17:5
12:47 8:12
Дату и время, введенные в любом виде, SPSS преобразует во внутренний формат. Для даты это количество секунд, прошедших с 0 часов 15.10.1582 г. (момента введения григорианского календаря) до 0 часов заданного дня; для времени — количество секунд с 0 часов до заданного момента времени.
В принципе можно также хранить число, месяц, год, часы, минуты и секунды в отдельных переменных и определять дату или время во внутреннем формате при помощи соответствующих функций.
Всего в SPSS имеется 25 различных функций для работы с датой и временем. Важнейшие из них представлены ниже.
XDATE.MDAY(arg) |
Выделяет из даты число |
XDATE.MONTH(arg) |
Выделяет из даты месяц |
XDATE.YEAR(arg) |
Выделяет из даты год |
XDATE.WKDAY(arg) |
Номер дня недели (1 =' воскресенье, ,..., 7 = суббота) |
XDATE.JDAY(arg) |
Номер дня в году |
XDATE.QUARTER(arg) |
Номер квартала в году |
XDATE.WEEK(arg) |
Номер недели в году |
XDATE.TDAY(arg) |
Количество дней начиная с 15.10.1582 |
XDATE.DATE(arg) |
Количество секунд начиная с 15.10.1582 |
DATE.DMY(d,m,y) |
Преобразует данные числа месяца, месяца и года во внутреннюю дату |
DATE.MOYR(m.y) |
Преобразует данные месяца и года во внутреннюю дату |
YRMODA(y,m,d) |
Преобразует данные года, месяца и числа месяца (строго в приведенной последовательности) в количество дней начиная с 15.10.1582 |
XDATE.TIME(arg) |
Количество секунд начиная с 0 часов |
TIME.HMS(h,m,s) |
Преобразует данные часов, минут и секунд в секунды |
Функции даты и времени применяются чаще всего в ситуациях, когда требуется вычислить промежуток между двумя датами или моментами времени. Например, если имеется две даты, записанные в переменных datum 1 и datum2, длительность промежутка между ними в днях можно рассчитать по следующей формуле:
COMPUTE tage=XDATE.TDAY(datum2) - XDATE.TDAY(datural). EXECUTE.
Пример использования функции YRMODA приводится в разделе 8.8. Функции обработки пропущенных значений
VALUE (variable): Функция VALUE объявляет недействительным пользовательское пропущенное значение.
MISSING (variable): Функция MISSING возвращает значение 1 (или true), если переменная содержит пользовательское или системное пропущенное значение.
SYSMIS (variable): Функция SYSMIS возвращает значение 1 (или true), если переменная содержит системное пропущенное значение.
NMISS (variable,variable,...): Функция NMISS возвращает количество пропушен-нных значений в списке переменных.
NVALID (variable,variable,...): Функция NMISS возвращает количество допустимых значений в списке переменных.
Функции извлечения значений наблюдений
LAG (variable,n): Функция LAG возвращает значение соответствующей переменной за я наблюдений до текущего. Так, например, LAG( variable, I) позволяет получить значение переменной в предыдущем случае (см. первый пример в разделе 8.8).
Статистические функции распределения
В SPSS реализовано в совокупности 20 статистических функций распределения. Эти функций вычисляют значение вероятности для следующих распределений: ß-распределения, распределения Коши, хи-квадрат, экспоненциального распределения, Г-распределения, F-распределения, распределения Лапласа, логистического, логарифмически нормального. нормального распределений, распределения Парето, распределения Стьюдента, равномерного распределения, распределения Вейбулла (непрерывные функции), а также распределения Бернулли, биномиального, геометрического, гипергеометрического, негативно-биномиального распределений и распределения Пуассона (дискретные функции). Для 14 непрерывных функций распределения существуют соответствующие обратные функции.
Так, например, функция CDF.T(t,df) возвращает вероятность ошибки р для заданного значения функции распределения Стьюдента, t и числа степеней свободы df, функция IDF. T(p,df) возвращает значение t для заданных вероятности ошибки р и числа степеней свободы df.
Функции генерации случайных чисел
В SPSS реализовано в совокупности 24 функции генерации случайных чисел, в том теле для 20 встроенных статистических функций распределения; например функция RV.T(df) возвращает случайные числа, подчиняющиеся распределению Стьюдента при df степенях свободы. Функция UNIFORM (numexpr) генерирует равномерно распределенные случайные величины, находящиеся в интервале от 0 до 1, а ее аргумент задает начальное значение для генератора случайных чисел.