c++与r语言的交互使用方法,Rcpp: R 与 C++ 的结合

本文介绍了如何使用Rcpp库在R语言中集成C++代码,以提高统计计算的速度。通过示例展示了如何在C++中调用R函数,以及如何处理R的数据类型,如NumericVector和S4。尽管直接调用R函数会增加通信时间,但纯C++实现可以显著提升效率,尤其是在大规模模型筛选和计算密集型任务中。
摘要由CSDN通过智能技术生成

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

R 语言是统计学学生的标配语言:很多统计学新方法出来之后,都是在 R 上最先实现;R 远多于其他语言的统计学算法包数量。作为动态语言,R 写起来类似于伪代码,给编程人员带来很多便利和提供了很好的可读性。但同样因为是动态类型语言,R 的计算速度非常慢:计算机需要遍历各种可能的类型中去来确定一段代码的输入和输出具体类型,IO性能非常感人。在做大规模的模型筛选时,这是非常不利的。以波动率建模为例,使用 rugarch 包的 ugarchfit

来对各种波动率模型进行估计,因为这个函数的源码是使用 C++ 写的,估计一个特定模型用时在 0.1-0.2 秒左右(处理器为 i7-7700HQ 2.8GHz * 8 )。而在 R 中反复调用该函数对 324 个模型进行时,即使通过并行算法同时使用 8 个核心来估计,以及通过向量化的方法,总时间并非 0.2 * 324 = 6.48 秒,而是达到了可怕的 350-450 秒 —— 大量的时间都消耗在 R 的 IO 上了。这样的速度是非常令人郁闷的。以我的学位论文为例,需要对将近 9000

段时间序列进行最优波动率建模,而一段时序的最优波动率模型筛选需要消耗 6-7 分钟,那么 9000 段需要的时间则差不多要 6 万分钟,也就是 42 天左右。

R

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值