Некоторые фона:Изменение внутренней функции пакета
я должен использовать функцию HMR
из пакета HMR
много. К сожалению, эта функция очень медленная. (HMR
- это, по сути, подходящая функция, которая должна быть максимально надежной, что является одной из причин отсутствия эффективности.) Функция HMR
вызывает функцию HMR::.HMR.fit1
, которая выполняет фактическое подключение. Использование Rprof
Я знаю, что основной проблемой эффективности является использование lsfit
, который получает много имен. Поэтому я модифицировал код .HMR.fit1
, чтобы вызвать функцию C, используемую lsfit
, без всех накладных расходов lsfit
, что должно привести к значительному увеличению скорости.
Теперь я хотел бы заменить HMR::.HMR.fit1
моей измененной функцией и тестом HMR
, если он дает те же результаты и насколько быстро я получаю.
Я пытался сделать это:
mod.fun <- function(<many args>) {
<a lot of code>
}
environment(mod.fun) <- environment(.HMR.fit1)
.HMR.fit1 <- mod.fun
Однако HMR::.HMR.fit1
не изменилось, делая это, и, по-видимому HMR::HMR
не использует мою модифицированную функцию фитинга. Есть ли способ достичь того, чего я хочу, не создавая пакет из исходного кода, чего я не могу сделать из-за ограничений прав пользователя на моем (Windows) компьютере?
Прямо сейчас, моим решением было бы скопировать код HMR::HMR
, но я надеюсь, что есть более удобное решение.
Если вы хотите * добавить * новую функцию вместо изменения старого, используйте это решение: http://stackoverflow.com/a/3402159/684229 – TMS