Как редактировать и отлаживать источники библиотеки R

Я включил библиотеку с именем blotter в свой R script, в которой есть ошибка. Есть ли простой способ изменить исходный код, чтобы попробовать и отладить проблему?

Ответы

Ответ 1

Посмотрите функции trace и browser, они являются основными инструментами в R для отладки. Скажем, вы хотите отредактировать источник функции foo, а затем

trace("foo",edit=TRUE)

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

Ответ 2

Такая функция реализована в версии разработки R (16 июля 2010 г.):

В r-devel добавлен новый объект для экспериментов авторов пакеты.

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

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

Одношаговая версия:

insertSource("mySourceFile.R", package = "myPackage", functions = "foo")

Подробнее см. в этом сообщении: Вставка и тестирование пересмотренных функций в пакете

Ответ 3

Ваш вопрос: Есть ли простой способ изменить источник, чтобы попробовать и отладить проблему? имеет очевидный ответ: используйте источник, Люк!

blotter представляет собой пакет на R-Forge, откуда вы можете получить источники блоттера. Это стандартный способ взглянуть на Open Source и, возможно, помочь ему вместе с исправлением ошибки.