Я включал библиотеку, названную промокательной бумагой в моем сценарии R, который имеет ошибку в ней. Существует ли простой способ ко мне отредактировать источник, чтобы попытаться отладить проблему?
Найдите функции trace
и browser
, это основные инструменты в R для отладки. Скажем, вы хотите отредактировать исходный текст функции foo
, тогда произнесение
trace("foo",edit=TRUE)
откроет исходный текст foo в редакторе для внесения изменений. Однако это предназначено для интерактивной отладки; исходные файлы в пакетах не изменяются. Поэтому после того, как вы нашли ошибку, вам нужно изменить исходные файлы пакета, чтобы изменения были постоянными.
Ваш вопрос о Есть ли для меня простой способ отредактировать исходный код, чтобы попытаться отладить проблему? У есть очевидный ответ: используйте исходный код, Люк!
blotter - это пакет на R-Forge , откуда вы можете получить исходники blotter здесь . Это стандартный способ взглянуть на Open Source и, возможно, помочь ему с исправлением ошибок.
Такая возможность реализована в разрабатываемой версии R (Jul 16, 2010):
В r-devel добавлена новая возможность для экспериментов авторов пакетов. пакетов.
Идея заключается в том, чтобы вставить измененный код из исходного текста пакета в работающий пакет без переустановки. Таким образом, можно изменять, тестировать, изменять, и т.д. в быстром цикле.
Механизм заключается в оценке некоторых файлов исходного кода, возвращающих объект окружения, который является снимком кода. Из этого среды, функции и методы могут быть вставлены в среду пакета в текущей сессии. При вставке используется механизм trace() механизм, поэтому исходный код может быть восстановлен.
Одношаговая версия выглядит так:
insertSource("mySourceFile.R", package = "myPackage", functions = "foo")
Более подробную информацию смотрите в этом посте: Вставка и тестирование пересмотренных функций в пакете