Проверка целостности данных перед депонированием
Публикация набора — точка невозврата: после получения DOI исправления оформляются как новая версия. Поэтому проверку делают до загрузки, а не после.
Ниже — минимальный набор проверок, который выявляет большинство проблем.
Пропуски
Посчитайте пропуски по каждой переменной и сравните с ожиданиями. Резкий рост в одной колонке почти всегда означает ошибку импорта или сбой анкеты.
Проверьте, различаются ли типы пропусков: отказ, неприменимость, техническая потеря. Если они сведены в один код, это нужно описать в codebook.
Дубли
Ищите полные дубли строк и дубли по ключу. Полный дубль часто возникает при слиянии файлов.
Дубли по ключу сложнее: два наблюдения с одним идентификатором могут быть разными записями или ошибкой. Решение фиксируйте в описании обработки.
Диапазоны значений
Проверьте минимумы и максимумы для каждой числовой переменной. Значения вроде −1 для возраста или 999 для роста указывают на код пропуска или ошибку ввода.
Постройте распределения: выбросы иногда реальны, но чаще это опечатки.
Типы и форматы
Убедитесь, что числа хранятся как числа, даты — как даты, а категории — как категории. Смешанные типы ломают импорт.
Проверьте десятичный разделитель: точка и запятая в одном файле — частая проблема русскоязычных данных.
Кодировка
Текст должен быть в UTF-8. Проверьте, что кириллица не превращается в «кракозябры» при открытии на другой машине.
Особенно осторожно с CSV, открываемым в Excel: без BOM кодировка может определиться неверно.
Контрольные суммы
После финальной сборки посчитайте SHA-256 для каждого файла и сохраните список. Он подтвердит, что файл не изменился при передаче.
Контрольные суммы публикуйте вместе с набором: пользователь сможет проверить скачанное.
Открываемость файлов
Проверьте каждый файл в другой программе: CSV — в текстовом редакторе и таблице, архив — после распаковки на чистой системе.
Файл, который открывается только у автора, бесполезен для читателя.
Сверка с codebook
Сравните список переменных с описанием. Все колонки должны быть описаны, а описанные — существовать.
Проверьте соответствие диапазонов и категорий. Расхождение между описанием и файлом — самая частая причина вопросов от пользователей.
Персональные данные
Проверьте текстовые поля, комментарии и идентификаторы на наличие имён, адресов и телефонных номеров.
Удаляйте не только явные идентификаторы, но и косвенные: редкие сочетания признаков в малых выборках.
Частые ошибки
- проверка только на своей машине;
- отсутствие контрольных сумм;
- неописанные пропуски;
- смешанные типы;
- персональные данные в свободном тексте;
- несоответствие codebook;
- публикация без финальной вычитки.
Как автоматизировать проверку
Напишите короткий скрипт, который считает пропуски, дубли и диапазоны, и запускайте его перед каждой публикацией.
Результаты сохраняйте: они становятся частью истории подготовки набора.
Что делать при найденной ошибке
Оцените масштаб: сколько строк затронуто и влияет ли это на выводы. Затем исправьте данные и обновите codebook.
Если набор уже опубликован, выпустите новую версию с описанием исправления.
Как проверять текстовые поля
Просмотрите уникальные значения в категориальных колонках: опечатки и разные написания одного значения видны именно там.
Приведите варианты к единому виду и зафиксируйте правило в codebook.
Как оформить отчёт о проверке
Короткий список: что проверено, что найдено, что исправлено. Его можно приложить к набору.
Отчёт экономит время тем, кто будет использовать данные позже.
Как проверять связанные файлы
Если набор состоит из нескольких таблиц, проверьте ключи связи: они должны совпадать без пропусков.
Ошибка в ключе разрушает соединение и создаёт «потерянные» наблюдения, которые легко не заметить.
Как проверять единицы измерения
Сравните значения с ожидаемым порядком: рост 170 см не должен превращаться в 1,7 или 1700.
Единицы, записанные в разных строках по-разному, находят по распределению и уникальным значениям.
Как проверять производные показатели
Пересчитайте один-два показателя вручную на нескольких строках и сравните с результатом скрипта.
Расхождение почти всегда означает ошибку в формуле или в обработке пропусков, а не в данных.
Итоговая проверка перед загрузкой
Пройдите по списку: пропуски, дубли, диапазоны, типы, кодировка, суммы, codebook, персональные данные.
Каждый пункт занимает минуты, а вместе они предотвращают большинство проблем, которые обнаруживаются уже после получения DOI и публикации статьи.
Что делать после исправлений
Пересчитайте контрольные суммы и обновите файл с ними. Старые суммы больше не соответствуют данным.
Проверьте, что исправление не затронуло другие файлы: связанные таблицы и сводные отчёты нужно пересобрать заново.
Чек-лист
- Пропуски посчитаны.
- Дубли найдены и описаны.
- Диапазоны проверены.
- Типы и форматы корректны.
- Кодировка UTF-8.
- Контрольные суммы сохранены.
- Файлы открываются на чистой системе.
- Codebook сверен.
- Персональные данные удалены.
Частые вопросы
Нужно ли исправлять все выбросы?
Нет. Реальные выбросы — часть данных и могут нести содержательный смысл. Удаляйте только ошибки, фиксируя причину и способ обработки.
Обязательны ли контрольные суммы?
Для больших наборов — практически обязательны. Для небольших достаточно указать размер и дату.
Что делать, если файл не открывается у коллеги?
Проверить формат и кодировку, а не отправлять инструкции. Проблема почти всегда в файле.
Можно ли публиковать данные с пропусками?
Да, если пропуски описаны и не искажают структуру набора.