2015-05-04 57 views
1

什麼是對lfactorial功能適用於RCPP一個NumericVector的最好/最簡單的方法。在R I將有這樣的事情:RCPP:應用lfactorial到NumericVector

> vec <- c(1,2,3,4) 
> lfactorial(vec) 
[1] 0.0000000 0.6931472 1.7917595 3.1780538 

在RCPP,假設我有:

NumericVector vec = NumericVector::create(1,2,3,4); 

什麼是應用Rcpp::internal::lfactorialvec每個元素的最好方法是什麼?

感謝您的任何幫助。

回答

3

RCPP,就像R,被矢量:

R> cppFunction('NumericVector lfac(NumericVector x) { \ 
             return lfactorial(x); }') 
R> lfac(1:4) 
[1] 0.000000 0.693147 1.791759 3.178054 
R> 

也就是說代碼我只是打破了更好的闡述這裏一行。在複製和粘貼之前刪除反斜槓。你可以把它寫無論是作爲一個NumericVectorIntegerVector簽名。

+0

再次感謝德克! – Cauchy

+0

你覺得寫在RCPP的R包裝具有由CRAN被接受的機會較高? – Cauchy

+0

我不認爲它起到了重要作用。你的包必須是免費的警告,錯誤,並注意的r CMD check'運行,並且最好是正確的了。 *我發現它更容易使用[Rcpp](http://dirk.eddelbuettel.com/code/rcpp.html),因此似乎可以做很多其他人 - 但[CRANberries](http:// dirk .eddelbuettel.com/cranberries)今天展示了另一個包含C++但不使用[Rcpp]的軟件包(http://dirk.eddelbuettel.com/code/rcpp.html)。它甚至使用'.C()'實際上是不鼓勵的。 –