Команда RECODE
Назначение команды: перекодирование существующей переменной. Формат команды:
RECODE V9 (0 THRU 25 = 1) (26 THRU 45 = 2) (ELSE =3).
или
RECODE V9 (0 THRU 25 = 1) (26 THRU 45 = 2) (ELSE =3) INTO W9.
Указывается переменная или список переменных со спецификациями в круглых скобках. Перекодируемые переменные в списке разделяются слэшами (/). По этой команде значения перечисленных переменных в указанных пределах будут заменены числами, следующими за знаком равенства.
Ключевое слово INTO указывает, в какую переменную (список переменных) переслать результат перекодирования, при этом соответствие между исходным списком переменных и переменными результата устанавливаются естественным образом.
Список переменных можно задать через ключевое слово TO, но всегда следует указывать переменные в том порядке, в каком они вводились либо вычислялись в программе.
Ключевые слова для задания входных значений команды RECODE:
LOWEST или LO - наименьшее значение переменной;
THRU или THR - значения переменной из указанного диапазона;
HIGHEST или HI - наибольшее значение переменной;
MISSING - отсутствующее значение, определяемое пользователем;
SYSMIS - отсутствующее значение, определяемое системой;
ELSE -все не специфицированные значения (не включаемые в SYSMIS).
Результат перекодирования - обычно код или системный код неопределенности SYSMIS, если вместе с ключевым словом ELSE употребляется слово COPY, то результатом становятся значения не включенные в списки перекодирования. Слово COPY имеет смысл употреблять, когда результат перекодирования записывается в другую переменную:
Recode educat (1=2)(2=1)(else=copy) into educat1.
Без (else=copy) в переменную educat1 будут внесены лишь перекодированные значения.
Заметим, что если переменная назначения за ключевым словом INTO ранее существовала, то она не изменит своих значений, если команда Recode не заносит в нее никаких кодов.
Среди списка значений для переменной, имеющей неопределенные значения, могут стоять слова MISSING и SYSMIS.
RECODE K9 ТO K12 (0 THRU 25 = 1)(MISSING = 10)(SYSMIS = 5).
Команда RECODE позволяет также интервалировать, группировать значения.
RECODE V11 V13 ( 8, 9, 2, 4, 7 = 1) (else=2).
Рисунок 2.2. Перекодирование данных
Что происходит при этом с матрицей данных? Как видно из приведенной выше схемы, происходит замена значений в соответствии с приведенными в команде списками значений.
Рассмотрим примеры перекодирования кодов неопределенности. При ответах на вопросы анкеты "Курильские острова" (приложение 1) кто-то не ответил на первый вопрос, кто-то сказал "Затрудняюсь". Объединим этих респондентов. Это можно осуществить командой
RECODE V1 (SYSMIS = 4).
и, таким образом, перекодировать системный код неопределенности в код 4. Можно провести обратную операцию:
RECODE V1 (4 = SYSMIS).
Этой командой код 4 перекодируется в системный код неопределенности. При обработке данных по этому признаку объекты, для которых значение V1 было когда-то равно 4, будут исключены из статистической обработки.
Тот же эффект можно получить, воспользовавшись командой
MISSING VALUES V1(4).
При этом таблица данных не изменится; но во внутренней для SPSS информации сохранятся сведения о том, что указанный в данной команде код является пользовательским кодом неопределенности для V1.
В SPSS запрещено писать MISSING справа от знака равенства, т.е. команда
RECODE V1(4=MISSING). недопустима!
Имеется еще вариант выполнения команды RECODE с созданием новой переменной. Для этого используется уключевое слово INTO:
RECODE V11 ( 8, 9, 2, 4, 7 = 1) (else=2) INTO W11.
При таком использовании команды в большинстве случаев необходимо перечислять все коды исходной переменной, поскольку не указанные значения переходят в системные неопределенные.