Генератор кодбука
Перечислите переменные по одной в строке — имя, подпись, тип, подписи значений, коды пропусков — и получите таблицу кодбука, которую можно вставить в README, а также синтаксис, который применяет те же подписи к вашим данным: VARIABLE LABELS, VALUE LABELS и MISSING VALUES для SPSS, код factor или haven для R. Инструмент также проверяет имена и подписи на соответствие ограничениям SPSS. Бесплатно, без регистрации. Всё, что вы вводите, не покидает браузер.
Ваши переменные
Поля в таком порядке, через | или табуляцию (можно вставлять прямо из таблицы): имя | подпись | тип | подписи значений | коды пропусков | примечания. Обязательно только имя.
Тип: scale, ordinal, nominal или string. Подписи значений — пары код=подпись через точку с запятой. Коды пропусков перечисляются через запятую; диапазон записывается как 997 to 999, а открытый конец обозначается LO или HI.
Базовый R превращает подписи значений в факторы, а коды пропусков — в NA. Стиль haven хранит коды и подписи вместе, как это делает SPSS.
Используется в синтаксисе R. Недопустимое имя заменяется на df.
Кодбук
Введите или вставьте переменные выше либо нажмите «Попробовать пример».
Экспорт
Запускайте при открытом файле данных: VARIABLE LABELS, VALUE LABELS, MISSING VALUES и VARIABLE LEVEL. Он не создаёт переменные и не задаёт ширину строковых переменных.
Как пользоваться генератором кодбука
- 1. Перечислите переменные. По одной в строке, поля разделяются вертикальной чертой или табуляцией, чтобы можно было вставлять прямо из таблицы: имя, подпись, тип, подписи значений, коды пропусков, примечания. Обязательно только имя.
- 2. Опишите значения. Подписи значений записывайте парами код=подпись через точку с запятой (1=Женский; 2=Мужской). Коды пропусков перечисляйте через запятую, а диапазон записывайте как 997 to 999. Для типа выберите scale, ordinal, nominal или string.
- 3. Прочитайте проверки. В таблице видно, что инструмент понял. Раздел «Что проверить» перечисляет пропущенные пары, повторяющиеся имена и всё, что SPSS бы отклонил, с номером строки.
- 4. Экспортируйте. Выберите синтаксис SPSS, синтаксис R, таблицу Markdown или CSV, затем скопируйте или скачайте. Для R выберите базовый R или haven и назовите датафрейм.
Для чего нужен кодбук
Кодбук — ключ к набору данных. Столбец q7, заполненный единицами, двойками и девятками, ничего не говорит читателю, да и вам самим через год, пока документ не объяснит, о чём спрашивает q7, что означает каждое число и какие числа вовсе не являются ответами. Кодбук фиксирует для каждой переменной её имя, описательную подпись, тип, подписанные значения и коды пропущенных данных. Это первое, что ищут соавтор или рецензент.
Таблица и код строятся из одного списка, поэтому они не могут разойтись. Инструмент не читает файл данных: вы вводите определения, и значения данных в работе не участвуют.
Типы и коды пропущенных значений
| Тип | Для чего использовать | В SPSS | В базовом R |
|---|---|---|---|
| Шкала | Измеренные величины: возраст, доход, балл теста | VARIABLE LEVEL SCALE | as.numeric() |
| Порядковая | Упорядоченные категории: шкала согласия 1–5 | VARIABLE LEVEL ORDINAL | ordered factor |
| Номинальная | Неупорядоченные категории: пол, страна | VARIABLE LEVEL NOMINAL | factor |
| Строковая | Текст: свободные ответы, идентификаторы участников | Уровень не задаётся | as.character() |
Шкальная переменная может иметь подписи значений, например код для «отказался отвечать». Базовый R оставляет её числовой и не превращает в фактор.
Код пропуска — это число, которое обозначает «нет ответа»: −99 для «отказался», −98 для «не знаю», 997–999 для нескольких причин сразу. Если их не трогать, эти числа попадут в средние. Объявленные как пользовательские пропуски, они сообщают SPSS, что их нужно исключить из расчётов, при этом коды остаются в файле. В базовом R такого признака нет, поэтому базовый синтаксис заменяет коды на NA; версия для haven сохраняет их так же, как SPSS.
Что допускает SPSS
Проверка опирается на справочник команд синтаксиса IBM. Имя переменной может содержать до 64 байт, должно начинаться с буквы или @, не может начинаться или заканчиваться точкой и не может совпадать с зарезервированными словами ALL, AND, BY, EQ, GE, GT, LE, LT, NE, NOT, OR, TO или WITH. Имя, начинающееся с #, создаёт временную переменную, а имя, начинающееся с $, зарезервировано для системных переменных, поэтому инструмент отклоняет оба. Подписи значений могут занимать до 120 байт. Числовая переменная может иметь до трёх отдельных пропущенных значений или один диапазон плюс одно отдельное значение, например LO THRU 0, 999. IBM советует держать каждую строку синтаксиса в пределах 256 символов; инструмент держится в пределах 251 байта, потому что именно с этого предела, по сообщениям пользователей, SPSS начинает выдавать предупреждения, поэтому слишком длинная подпись отмечается заранее, до того как всё сломается. Страницы IBM: имена переменных и VALUE LABELS.
Пример
«Попробовать пример» загружает пять переменных опроса: текстовый идентификатор, числовой возраст, номинальный пол с четырьмя подписанными значениями, порядковый пункт из пяти вариантов и переменную дохода, коды 997–999 у которой означают пропуск. Вывод SPSS состоит из четырёх команд. VARIABLE LABELS охватывает все пять переменных, VALUE LABELS — пол и порядковый пункт, MISSING VALUES — четыре переменные (возраст, пол, порядковый пункт и доход), а VARIABLE LEVEL — четыре нетекстовые переменные. Так выглядит команда MISSING VALUES, которую он пишет:
Пример: команда MISSING VALUES
MISSING VALUES age (-99) /gender (-99) /sat1 (-99, -98) /income (997 THRU 999).
В R базовая версия перекодирует эти коды в NA и превращает помеченные переменные в факторы, а порядковый пункт — в упорядоченный фактор. Версия haven вызывает haven::labelled_spss(), аргументы которого labels, na_values, na_range и label хранят те же четыре вещи. Инструмент пишет каждую из них отдельной строкой, так что ненужные переменные можно удалить.
Ограничения и предостережения
- Инструмент не читает ваши данные. Проверьте, что каждый перечисленный код действительно встречается, и что нет кода, который вы забыли перечислить.
- Синтаксис R меняет данные. Базовая версия перезаписывает каждый столбец. Работайте с копией и сверяйте каждый
as.numeric()с исходным файлом: значение, которое нельзя прочитать как число, станетNAс предупреждением. - Строковые переменные SPSS. Строковым переменным при создании нужна ширина, а синтаксис здесь переменные не создаёт. Запускайте его при открытом файле данных.
- Коды должны быть согласованы. По возможности используйте одни и те же коды пропусков для всех переменных и никогда не используйте код, который может оказаться настоящим ответом.
Часто задаваемые вопросы
- Что такое кодбук в исследовании?
- Кодбук — это документ, который объясняет набор данных: как называется каждая переменная, что она измеряет, как закодирована и какие коды означают пропущенные данные. Человек, который никогда не видел данных, должен по кодбуку понять каждый столбец. Его иногда называют словарём данных.
- Что должен включать кодбук?
- Как минимум — имя, подпись и тип каждой переменной, подписи значений для закодированных переменных и коды пропущенных данных. В кодбуках опросов часто добавляют точную формулировку вопроса, варианты ответов, кого опрашивали, а также заметки о перекодировании и производных переменных. Этот инструмент охватывает первую группу и имеет столбец примечаний для остального.
- Как добавить подписи значений и пропущенные значения в синтаксисе SPSS?
- Используйте VALUE LABELS с именем переменной и парами код и подпись, например VALUE LABELS gender 1 "Female" 2 "Male". Используйте MISSING VALUES с переменной и её кодами в скобках, например MISSING VALUES age (-99). Каждую команду завершайте точкой. Инструмент пишет обе команды, по одному блоку на переменную, с разделением косой чертой.
- Сколько пропущенных значений может иметь переменная SPSS?
- У числовой переменной может быть до трёх отдельных пользовательских пропущенных значений или один диапазон значений плюс одно дополнительное отдельное значение. Диапазон задаётся через THRU, а LO и HI означают наименьшее и наибольшее значения. Инструмент отмечает переменную, которая выходит за этот предел.
- Что лучше использовать в R: базовые факторы или haven?
- Используйте базовый R, если будете анализировать данные только в R: факторы несут подписи, а NA — коды пропусков. Используйте haven, если данные пришли из SPSS, Stata или SAS или вернутся туда, потому что labelled_spss() хранит коды, подписи и пользовательские пропуски вместе. В документации haven этот класс описан как моделирующий пользовательские пропуски SPSS.
- Загружаются ли мои данные?
- Нет. Всё работает в вашем браузере, и ничего из введённого не загружается. Инструменту нужны только определения переменных, а не значения ваших данных.