Об отладке в R

Конечно, R — язык специфический, не предназначен для создания приложений, а основной областью его применения является анализ данных. Может быть поэтому он не обладает мощными средствами отладки. Проблема также и в генерируемых исключениях.

Немало времени пришлось потратить на то, чтобы понять причину ошибки, возникающей в методах вычисления доверительных интервалов для медиан MedianCI (из пакета DescTools) и ci.median (из пакета asbio), т.к. сообщение об ошибке как-то весьма отдалённо намекает о её сути.

Метод MedianCI выдаёт в сообщении нечто такое, что вообще вряд ли позволит диагностировать проблему:

Ошибка в names(r) <- c("median", "lwr.ci", "upr.ci") :
  атрибут 'names' [3] должен быть той же длины, что и вектор [2]

С методом ci.median уже полегче. Сообщение об ошибке лаконично, и уже наводит на кое-какие размышления.

Ошибка в ci.median(b) :CI not calculable

Исследуя проблему пошагово, удалось выяснить, что ошибка возникает при анализе параметров наблюдений, входящих в кластер, состоящий всего из четырёх точек!

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

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

Share

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *