发表于2024-11-27
R 语言是一门主要用于数据处理、统计分析和可视化作图的解释型脚本语言。作为一门编程语言,R (及其“前身” S 语言)在设计之初就面临一个二选一的难题:语言的设计是应该面向用户,让使用者可以快速地建模,还是应该面向机器,以使得代码可以高速地在计算机上运行?最终,语言的设计者们选择了前者,其理念是“人的时间” 比“机器的时间” 更为宝贵。在R 语言诞生后的十几年间,事实证明这个最初的决定使得R 逐渐发展为一门具有高度灵活性和可扩展性的统计编程语言,进而极大地促进了其背后R 语言社区的发展壮大。
然而,语言的简洁性和灵活性并非恒久不变的法则。随着统计模型越来越复杂,数据量越来越大,众多的R 语言开发者和使用者开始发现效率成为了这门语言的一个瓶颈。“人的时间” 固然宝贵,但“人等待机器的时间” 同样不可忽视。如何在保持语法不变的同时提升程序执行的效率,成为了R 语言开发者们一个十分关注的话题。
事实上,在R 语言诞生的初期,其核心开发团队就给出了一个解决方案:将计算密集的算法用C/C++ 实现,然后在R 中调用这部分代码。R 语言提供了一系列的API (应用程序接口)来实现它与其他语言的交互,但在很长的一段时间里,积极使用这些接口的R 软件包开发者并不占多数,其中可能重要的一个原因就是这些接口的使用相对繁琐,且文档资料也不够丰富,开发者空有屠龙之刀,却无屠龙之技。
幸运的是,这一局面在Rcpp 横空出世后被彻底打破。我首次听说Rcpp是在2009 年,当时在统计之都论坛的帖子上(http://cos.name/cn/topic/17665/)大家在讨论如何用R 调用C++ 程序,于是经过一些搜索后我从R 的软件仓库中找到了这个软件包。当时的Rcpp 核心只有两个文件,代码总量不到2000 行,但那时它已经可以极大地简化R 与C++ 之间的交互。现如今,Rcpp 的代码量已经接近10 万行,在R 的官方软件包仓库中有超过300 个软件包直接依赖于Rcpp,而它也成为了被依赖次数多的R 语言扩展包(除去R 自身默认提供的扩展包),没有之一。
总的来说,Rcpp 定义了一系列的类、函数和接口来增强R 与C++ 之间的交互性。用户只需懂得基本的C++ 知识,就可以写出丰富的可供R 调用的C++ 程序。与R 中传统的C 语言API 相比,Rcpp 利用了更为现代的C++ 编程技术,故而其语法更为简洁,也更富表现力和可读性。此外,Rcpp 还特意针对R 软件包开发提供了一系列便捷的辅助程序,使得开发者
可以快速地部署项目,开发软件包,省去了许多繁琐而枯燥的设置。或许,这正是Rcpp 能迅速地获得R 软件包开发者青睐的原因。
本书的原作者,Dirk Eddelbuettel,正是Rcpp 从早到现在开发工作的主导者。从这个角度来说,由作者自己来阐述Rcpp 的设计理念和使用方法是恰当不过的了。而更为可贵的是,作者在全书中使用了大量的实例和代码来讲解Rcpp 的细节,可以预想,读者无论是在理念上还是在实战中都能从本书中受益。
本书的两位译者为本书中文版的面世付出了大量的时间和心血。需要特别提到的是,两位译者同样也是R 社区活跃的开发者,他们在许多R 软件包和编程项目中都大量使用了Rcpp。也正是因为如此,两位译者在执笔过程中融入了自己使用Rcpp 的心得和体会,在语言上将原本可能艰涩的编程概念用更加平易近人的方式表达出来,相信读者在阅读本书的过程中会体会到译者的用心。
Rcpp是R应广泛的语言扩展包,它被应用于超过100个CRAN和BioConductor的包中。这本书是关于Rcpp的一本综合性导论。Rcpp使得用户可以在R和C++之间来回传递数值、向量、列表或者完整的R对象,在给R分析框架带来深度的同时,也带来了C++的威力、速度和效率。
本书适用于希望使用C++ 代码对R 进行扩展的R 用户。熟悉R 语言对于阅读本书自然很有帮助;有很多其他书籍提供了回顾和特定的介绍。C++的知识也很有帮助,尽管我们不严格要求。附录为只熟悉R 语言的读者提供了一个非常简短的C++ 简介。
Dirk Eddelbuettel,成为CRAN的贡献者已逾十年,他维护了超过20个包,是R和其他量化软件在Debian/Ubuntu上的维护者,并负责编辑CRAN上的金融与高性能运算的任务视图。此外他还是R/Finance年会的共同发起人,《统计软件》期刊的编辑。他拥有法国社会科学高等研究院(巴黎)的Ph.D.学位,现就职于芝加哥任高级量化分析师。
Rcpp将强大且用途广泛的R与高效的C++整合在一起。有了Rcpp,R和C++之间的数据传输可谓畅通无阻,对大部分R用户而言终于可以进行高性能统计计算。Rcpp应该成为每个统计学家工具箱的一部分。
——Michael Braun, MIT斯隆商学院
《Rcpp: R与C++的无缝整合》是一本妙不可言的书。对使用R和C++的人来说,此书是不容错过的宝库。本书的写作非常出色。关于应用的章节更是天赐之宝。这些章节包括矩阵包Armadillo和Eigen、GNU Scientific Library以及可以让使用者在C++中调用R的RInside。这些应用对使用R和C++进行科研编程的人来说是必需的。我爱这本书。
——Rober McCulloch,芝加哥大学布斯商学院
对致力于严谨的计算研究的人来说,Rcpp是一个重要的包。Dirk这本书是他们的好伙伴,它用大量的例子和循循善诱的介绍,带领读者从登堂到入室。本书囊括了你想了解的关于Rcpp、它的表亲(如RcppArmadillo、RcppEigen等)、modules、包的开发以及sugar的方方面面。总而言之,它是你书架上的必备之作。
——Sanjog Misra, UCLA 安德森管理学院
Rcpp标志着R在科学计算领域飞跃性的发展。只需几行C++代码,你在可以在拥有R的数据结构的可读性的同时,享受C++的计算性能。因此,用C++实现的高性能数值计算程序可以轻易迪该用R实现,并且速度将大大提升。Dirk是开发的关键任务,他的数将会带领读者从第一步到运用Rcpp完整的机理。这是一本值得推荐的书。
——Sren H?jsgaard, 丹麦奥尔堡大学数学系
Rcpp:R与C++的无缝整合 下载 mobi pdf epub txt 电子书 格式 2024
Rcpp:R与C++的无缝整合 下载 mobi epub pdf 电子书非常不错的一般册子。。。。。。。。。
评分非常不错的一般册子。。。。。。。。。
评分挺好的,不用去书店买了背回家,不过买回来一阵子了都还没有学习.
评分还不错。没开始阅读。
评分感觉rcpp即将是r发展的一个主要方向。买来看看先。
评分不错不错呀……… 不错不错呀………………
评分深入浅出的好书,京东快递不错
评分还不错。没开始阅读。
评分商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!商品不错!
Rcpp:R与C++的无缝整合 mobi epub pdf txt 电子书 格式下载 2024