为了提高 R 程序的运行效率,可以尽量使用向量化编程,减少循环,尽量使用内建函数。对于效率的瓶颈,尤其是
设计迭代算法时,可以采用编译代码,而 Rcpp 扩展包可以很容易地将 C++ 代码连接到 R 程序中,并且支持在
C++ 中使用类似于 R 的数据类型。
没有学过 C++ 语言的读者,如果需要编写比较独立的不太依赖于 R 的已有功能的算法,可以考虑学习使用 Julia
语言编写。Julia 语言是最近几年才发明的一种比 R 更现代、理念更先进的程序语言,其运行效率一般比 R 高得
多,经常接近编译代码的效率。
Rcpp 可以很容易地把 C++ 代码与 R 程序连接在一起,可以从 R 中直接调用 C++ 代码而不需要用户关心那些
繁琐的编译、链接、接口问题。可以在 R 数据类型和 C++ 数据类型之间容易地转换。
因为涉及到编译,所以 Rcpp 比一般的扩展包有更多的安装要求:除了要安装 Rcpp 包之外,MS Windows 用户
还需要安装 RTools 包,这是用于 C, C++, Fortran 程序编译链接的开发工具包,是自由软件。用户的应用程序
路径 (PATH) 中必须有 RTools 包可执行程序的路径 (安装 RTools 可以自动设置)。如果 Rcpp 不能找到编译器,
可以把编译器安装到 Rcpp 默认的位置。Mac 系统的用户可以从应用商店安装 Xcode 软件,Linux 操作系统可以
在操作系统命令行用如下命令安装编译软件
sudo apt-get install r