Comments 6
между validate
и ruler
остановились на 1-м, но это не характеризует качество пакетов, а просто персональные предпочтения в использовании конструкций R и метапрограммирования
да нет, скорее исторически сложилось, когда смотрели на существующие пакеты некоторое время назад. Структурный же анализ делаем посредством checkmate
.
Логические проверки бывают в целом несложные (диапазоны, зависимости). Удобно скидывать правила в файлы или генерировать файлы с правилами внешними скриптами или внешними админскими интерфейсами. Да и когда всегда есть dplyr
под рукой, с помощью которого можно выполнить любую сложную валидацию, особого пристрастия высказывать не стали. Свою задачу решает, в целом удобно, ну и замечательно. Появится что лучше — перейдем. Ровно так и произошел год назад переход с assertr
на checkmate
.
Может у Вас есть кейс, где ruler
однозначно "рулит"? Интересно было бы ознакомиться и взять на заметку.
Спасибо за развёрнутый ответ.
Относительно кейса у меня было всё достаточно стандартно. Есть data frame, на строки и ячейки которого накладываются ряд ограничений, очень удобно реализуемые с помощью dplyr
. Необходимо написать функцию, которая проверяет выполнение всех ограничений. При выявлении "плохих" элементов необходимо подать какой-то сигнал (ошибку, предупреждение, сообщение) и вывести в консоль отчёт в компактном виде.
Для данной задачи ruler
подошёл практически идеально. Конечно, рассматривал и validate
, и assertr
. Первый на тот момент мне показался немного переусложнённым и не позволял получить необходимый отчёт без особых танцев с бубном. Второй выполнял код очень медленно, потому что вызывал функции проверки чуть ли не построчно (вместо векторизованного варианта при создании правил через dplyr
)
Конструктивные элементы надежного enterprise R приложения