私は R で Gibbs サンプラーを書き、それを C に移植して高速になるかどうかを確認することにしました。私が見た多くのページでは、C は最大で 50 倍高速になると主張していますが、私が C を使用するたびに、R よりも約 5 倍または 6 倍高速になるだけです。 Cコードをこれよりも大幅に高速化する、使用していないトリックはありますか(ベクトル化を使用してRでコードを高速化する方法など)? 私は基本的にこのコードを C で書き直して、行列演算を for ループに置き換え、すべての変数をポインターにしました。
また、R プログラマーの観点から見た C の優れたリソースを知っている人はいますか? Matloff によるThe Art of R Programmingという優れた本がありますが、C を既に知っている人の視点から書かれているようです。
また、C コードを標準の R GUI for Windows で実行すると、画面がフリーズする傾向があります。クラッシュしません。コードの実行が完了するとフリーズが解除されますが、GUI で他の操作を行うことができなくなります。これを回避する方法を知っている人はいますか?.C() を使用して関数を呼び出しています