發表於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 電子書其實 不太喜歡斯普林格的這種風格的封麵,沒動物書的那麼帶感
評分深入淺齣的好書,京東快遞不錯
評分寫的一流,無問題
評分梅爾加德斯是個誠實的人,他告誡說:“磁鐵乾這個卻不行。”可是霍·阿·布恩蒂亞當時還不相信吉蔔賽人的誠實,因此用自己的一匹騾子和兩隻山羊換下瞭兩塊磁鐵。這些傢畜是他的妻子打算用來振興破敗的傢業的,她試圖阻止他,但是枉費工夫。“咱們很快就會有足夠的金子,用來鋪傢裏的地都有餘啦。”--丈夫迴答她。在好兒個月裏,
評分非常不錯的一般冊子。。。。。。。。。
評分深入淺齣的好書,京東快遞不錯
評分不錯。英文太難看懂瞭。還是得看中文的。
評分商品滿意度5分 請至少填寫一件商品的評價
評分寫的一流,無問題
Rcpp:R與C++的無縫整閤 mobi epub pdf txt 電子書 格式下載 2024