Rcpp包运行C++代码
创始人
2025-06-01 11:01:59
0

提高 R 脚本性能的最简单、最快捷的方法是更改脚本的问题部分并用 C++ 重写它们。Rcpp包提供了 R 和 C++ 之间的接口。

1. cppFunction()转换简单的C++函数

### 1. cppFunction()转换简单的C++函数
library(Rcpp)
cppFunction(code='int fibonacci(const int x){if(x < 2) return x;if(x > 40) return -1; // 太大的x值会占用过多计算资源return ( fibonacci(x-1) + fibonacci(x-2) );}
')
print(fibonacci(10))

2. sourceCpp()转换C++程序

sourceCpp(code='
#include 
using namespace Rcpp;//[[Rcpp::export]]NumericVector iters(NumericVector x){int n = x.size();NumericVector y(n);y[0] = x[0];double sign=-1;for(int t=1; t

3. 用sourceCpp()转换C++源文件中的程序

# test.cpp文件
#// [[Rcpp::export]]
#int multiplicationcpp(int a, int b) {
#  int sum = a * b ;
#  return sum;
#}sourceCpp("path/to/your/file/test.cpp")
multiplicationcpp(a = 10 , b = 5)

4. Rcpp项目

RStudio中新建 Rcpp项目 (Create R Package Using Rcpp)(需要下载更新C++编译器)

编写R文件,Rcpp文件

进入testRcpp文件夹 setwd("/Users/zhengxueming/Projects/testRcpp")

运行 Rcpp::compileAttributes()

更新 RcppExports.R 和RcppExports.cpp文件

注:通过命令创建项目骨架

setwd("/Users/zhengxueming/Projects")

library(Rcpp)

Rcpp.package.skeleton("testRcpp")

运行 Rcpp::compileAttributes()后,不会更新RcppExports.R 和RcppExports.cpp文件。

参考:

https://zhuanlan.zhihu.com/p/442412744

https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rcpp.html

https://www.jb51.net/article/227491.htm

相关内容

热门资讯

龙迅股份60岁董事长陈峰是海归... 瑞财经 王敏 12月22日,据港交所文件,龙迅半导体股份有限公司(以下简称“龙迅股份”)向港交所递交...
小伙儿从银行取钱被“叫家长” 近日,客户丁先生到潍坊银行火车站支行办理柜面取款业务。柜员李培培按流程开展核实工作时发现,丁先生刚在...
小红书聚光托管:优势尽显,云海... 在当今竞争激烈的市场环境下,小红书聚光托管服务成为了众多品牌提升曝光度和转化率的关键途径。然而,面对...
航发科技涨停,成交额15.30... 来源:新浪证券-红岸工作室 12月25日,航发科技涨停,成交额15.30亿元,换手率13.03%,总...
离岸人民币兑美元汇率一度升破7... 12月25日,人民币兑美元中间价报7.0392,较上日调升79个基点,升至2024年9月30日以来最...
2026年房地产市场会有哪些变... 最近中央经济工作会议一结束,房地产圈直接炸了! 不管你是想明年上车的刚需、想换大房子的改善族,还是手...
A股上市公司定增:募资额增37... 【12月26日消息,今年以来市场走势向好,定增募资大增为券商带来机遇】今年以来,市场走势向好,投融资...
A股企业:2025年111家上... 【1253.24亿!2025年多家企业A股募资与重组活跃】12月26日数据统计显示,2025年截至1...
马云杀入新战场,和张一鸣正面对... 来源:市场资讯 (来源:电商行业) 马云:“没有一家公司能在任何领域永远保持第一,只有竞争才能让自...
从“全球宽带”到“太空AI算力... 12月25日,卫星板块全面爆发!表征板块的卫星产业ETF(159218)强势收涨5.45%,其前两大...
小游戏销售收入突破五百亿元 成... 在国内游戏产业收入规模再创新高之际,小程序游戏成为不可忽视的增量来源。 根据中国音数协游戏工委近日发...
天数智芯港股IPO背后:商业化... 12月19日,天数智芯通过港交所聆讯,如果不出意外,其将于2026年1月正式挂牌上市。 此前摩尔线程...
原创 华... 12月24日,据澎湃新闻报道,华创证券研究所(下称“研究所”)近期发生了重大人事变动,包括首席经济学...
金融监管总局发文规范银行保险机... 来源:央视 国家金融监督管理总局12月25日对外发布《银行保险机构资产管理产品信息披露管理办法》,规...
跑赢同类指数10个点,有色矿业... 2025的行业王者,将在通信和有色里决出,就看剩下的几个交易日里,是易中天更强,还是金银铜更强。 ...
实干惠企兴产业 广东中行厚植普... 在岭南的青山碧海之间,一场由金融力量推动的变革正悄然发生:湛江深海养殖平台“恒燚一号”迎浪而立,江门...
胡润:一张财富排行榜里的二十五... 记者 郑晨烨 编者按:2025年,经济观察报以“我们的四分之一世纪”为年终特刊主题,旨在通过数十位时...
从“有钱花”到“有品质”:泰康... 当中国60岁及以上老年人口突破3亿,当“银发浪潮”遇上低利率环境,如何让晚年生活有确定感?如何让养老...
现货白银突破73美元/盎司,再... 12月26日上午,现货白银跳空高开,突破73美元/盎司,再创历史新高,最高至73.82美元/盎司,日...
央行:加强货币政策调控 保持流... 记者25日从中国人民银行了解到,近日召开的中国人民银行货币政策委员会2025年第四季度例会研究了下阶...