2013-03-05 21 views
-3

對不起,我是初學者,但遇到了這個問題。我只是尋找最簡單的方法來從C++調用R中的rnorm函數。我已經看過rcpp包,但即使閱讀了所有的教程,我仍然很困惑。我會很感激有人通過這些步驟走過我,因爲有人在編程方面經驗豐富,但不熟悉rcpp包。如何在C++中調用r函數rnorm

+1

我認爲你已經閱讀http://www.jstatsoft.org/v40/i08/paper尤其是第9頁.... – mnel 2013-03-05 04:47:59

回答

7

你現在得到​​爲從R API(使用比較新的RCPP的版本)的功能的界面,當然還有的rnorm在RCPP本身的向量化版本:

R> cppFunction('double scalarN(double m, double s) { return R::rnorm(m, s); }') 
R> set.seed(42); scalarN(0,1); 
[1] 1.37096 
R> cppFunction('NumericVector vectorN(int N) { return rnorm(N); }') 
R> set.seed(42); vectorN(3); 
[1] 1.370958 -0.564698 0.363128 
R> 

在這裏,我們使用來自較新的Rcpp屬性添加的cppFunction助手動態編譯單行C++函數。