全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5899 18
2015-04-27
用rcpp或者rcpp armadillo来compile c++函数。这样写成的函数比R函数呼叫速度快出几倍乃至几千倍。有兴趣的可以研究一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-4-27 08:11:40
// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
using namespace Rcpp;
using namespace arma;
// [[Rcpp::export]]
vec samplex(){
  vec x(100000);
  for(int i = 0; i<100000; ++i){
  double u1=R::runif(0,1);
  double a=1,b=1.7,mid=0;
  double temp=0;
  double m=exp(1.7*log(1.7))-1;
  for (int l = 0;  l<50; ++l){
  mid=(a+b)/2;
  temp=(exp(mid*log(mid))-1)/m-u1;
  if(temp<0){
  a=mid;
  }
  if(temp>0){
  b=mid;
  }
  }
  x[i]=mid;
  }
  return x;
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-27 08:13:09
这是用rcpp写的c++函数,关于从一个分布sample的。用i7处理器sample10万次只要0.61秒。用R实现这个不花个1分钟是不太可能的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-27 08:14:37
而且这个方法上手极其简单。你只要装:rstudio,r和rtool即可。package只要rcpp和rcpparmadillo
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-27 08:15:47
哎。为了下一个pdf只好不停地来发帖了。估计我说的这些东西很多人都会。。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-27 08:18:00
鼓励楼主的创新,
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群