R: Получение более информативных сообщений об ошибках в R - PullRequest
0 голосов
/ 30 октября 2018

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

В частности, мне всегда хотелось бы call, включая formals, выражение, присвоенное каждому формальному (выражение по умолчанию, если задано выражение по умолчанию), и значение каждого из выражений аргумента, как оцениваемое на месте, все возвращается в формате, который делает однозначным, какое выражение было сопоставлено, какому формальному и какие значения идут с каким выражением. Поскольку значения могут быть большими или иметь неожиданный или мимолетный тип, я бы хотел, чтобы они возвращались в формате, таком как str(), который делает разумный выбор в отношении усечения и правильно определяет обещания и другие типы объектов, которые имеют тенденцию оценивать сами во что-то еще, прежде чем их увидеть.

И, наконец, я хотел бы, чтобы все эти вещи, вместе со значением return каждого call, для каждой функции в стеке вызовов от ошибки до (и включая) некоторого фрагмента кода, который я написал , Мне кажется, что естественной структурой будет один объект R, list списков, один список на call (возможно, аккуратный, broom -подобный, в столбик с некоторыми столбцами списка), который я мог бы выделить шаг за шагом очевидным образом.

Я прошу прощения, если я описал какой-то стандартный инструмент отладки R, который я просто еще не научился правильно использовать. Это вообще возможно? Если это так, может ли он быть реализован с помощью доступных обработчиков ошибок R, или ему потребуется какой-то проект кодирования масштаба пакета?

Я бы предпочел решение, которое изменяет ответ на ошибку по умолчанию, но если это неосуществимо, я бы принял решение, которое требует, чтобы я повторно запустил фрагмент кода с помощью оболочки или чего-то подобного.

...