我写了一个Rcpp函数,它从一个总体中返回一个样本,并测试我希望运行数千或数百万次的估算方法。似乎调用Rcpp需要一些开销,像replicate(100,myFunction())
之类的东西花费的时间比我预期的要长得多。
最好的方法是什么? rep
,*apply
,replicate
,将循环本身放在C ++中?
答案 0 :(得分:0)
如果你担心性能,你想减少从R到C ++的调用次数 - 而不是像你说的那样成千上万次。
所以Baptiste就是如此:如果可以的话,在C ++级别执行for()
循环。
另请注意,RcppArmadillo的最新版本现在具有sample()
的C ++版本,这可能允许您在C ++中执行该部分。那就是说我对“UPtille”及其所做的一无所知,也许你会对现有的R实现感到困惑。