Подтвердить что ты не робот

R: как обрабатывать данные очистки вручную

Позвольте мне сначала сказать, что я старательно избегаю данных очистки рук в пользу регулярных выражений и тому подобного. Однако иногда это неизбежно.

Я использую что-то вроде рабочего процесса Load-Clean-Func-Do, так что это, очевидно, подходит для фазы очистки. Тем не менее, любое ручное редактирование ломает способность запускать материал до очистки рук, если он нуждается в обновлении.

Я могу по крайней мере три способа справиться с этим:

  • Положите ручные изменения как можно раньше на рабочий процесс, чтобы все после этого оставалось работоспособным.
  • Записывать регулярные выражения или операции присваивания для каждого отдельного изменения.
  • Используйте инструмент, который генерирует (2) для вас после закрытия электронной таблицы, где вы внесли изменения.

Проблема с 2 заключается в том, что она может быть чрезвычайно неуязвимой. Проблема с 3 заключается в том, что я не знаю о каком-либо таком инструменте, который существует для R. Stata имеет чрезвычайно хорошую реализацию этого.

Итак, вопросы:

  • Что приводит к наиболее воспроизводимому коду с наименее расстраивающим написанием кода?
  • Существует ли такой инструмент, как в (3)?
4b9b3361

Ответ 1

Я согласен с тем, что чистка рук - это, как правило, довольно плохая идея. Однако иногда это неизбежно. Я бы предложил один из двух, или оба:

  • Храните отдельный файл данных с "фиксацией данных", содержащий три переменные "case_id", "variable_name", "value". Используйте его для хранения информации о том, какие значения в исходных данных необходимо заменить. Вы можете добавить некоторые дополнительные переменные к дополнительной информации об очистке (например, почему значение переменной "имя_переменной" нужно заменить на "значение" для случая "case_id" и т.д.). Затем введите короткий фрагмент кода R, который загружает ваши исходные данные, а затем очищает его с дополнительной информацией в файле "fixing".

  • Возможно, вам стоит начать использовать некоторую систему управления версиями, например git или subversion (есть и другие проги). Каждое внесенное вручную изменение данных может быть записано в систему как отдельная фиксация. К концу дня вы сможете легко проверить журнал, какое изменение вы внесли в данные и когда. Кроме того, вы сможете создавать файлы патчей, которые преобразуют исходные файлы данных в очищенные. Также полезно иметь управляемые версии файлов R-кода.