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