2013-08-28 59 views
1

來自R調用從C R所以我要運行大型MCMC的哪些是不可行的R.因此我寫了在C環和使用.C在MCMC

來自R調用它

然而,在此循環,我偶爾會有采樣步驟或建模步驟,在R中有標準包。從頭開始用C編碼這些東西對我來說會是矯枉過正的。

這就是爲什麼我想在這裏調用R函數。我將在「編寫R擴展」中使用「8.1在Unix下嵌入R」。

,使其成爲,R嵌入C,這本身就是從R的.C調用是這種方法確定在

  • 簡單而言,還是有一個更優雅的框架?

  • 穩定性(R調用C,它調用R)

  • 可伸縮性(R調用C,它調用R),我將在亞馬遜運行多個這樣MCMC採樣?

  • 內存使用情況?

我只對R嵌入在C(而不是C++)感興趣。速度對我來說非常重要。

+0

「OK」是什麼意思? –

+0

公平點。增加了我對框架簡單性的重視。 – user1971988

+2

看看包Rcpp,你可以寫出從R調用它的CPP代碼,你可以訪問CPP中的R功能 – statquant

回答

2

我們在CRAN,http://cran.us.r-project.org/web/packages/mcmc/index.html的mcmc軟件包中正是這樣做的。該鏈接包含下載源代碼的方式。

這個包實現了Metropolis-Hastings算法。具體來說,C代碼處理運行MH循環,但調用用戶提供的R函數來評估每次迭代時的日誌非標準化目標密度,它還會調用用戶提供的輸出函數。

我已經使用非常大的模型和數據集運行此代碼,因此使用此方法在R中運行「大型」MCMC估計肯定是可行的。

+0

這正是我所尋找的。我正在閱讀R Extensions手冊,並檢查了您的源代碼。謝謝你的幫助。 – user1971988

相關問題