Rcpp:将lfactorial应用于NumericVector

时间:2015-05-04 23:38:09

标签: r rcpp

lfactorial函数应用于Rcpp中的NumericVector是最好/最简单的方法。在R我会有这样的事情:

> 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::lfactorial应用于vec的每个元素的最佳方法是什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分: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签名。