Как редактировать и отлаживать источники библиотеки 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 и, возможно, помочь ему вместе с исправлением ошибки.