いくつかの背景:
HMR
パッケージの関数を多用する必要がありますHMR
。残念ながら、この機能は非常に遅いです。(HMR
本質的にはフィッティング関数であり、可能な限り堅牢になるように設計されています。これが効率性の欠如の理由の1つです。)関数は、実際のフィッティングを行う関数を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
ことですが、もっと便利な解決策があることを願っています。