天天看點

快速了解R語言

1 R的曆史

R語言來自S語言,是S語言的一個變種。S語言由Rick Becker, John Chambers等人在貝爾實驗室開發, 著名的C語言、Unix系統也是貝爾實驗室開發的。

S語言第一個版本開發于1976-1980,基于Fortran; 于1980年移植到Unix, 并對外釋出源代碼。 1984年出版的“棕皮書” (Becker and Chambers 1984) 總結了1984年為止的版本, 并開始釋出授權的源代碼。 這個版本叫做舊S。與我們現在用的S語言有較大差别。

1989–1988對S進行了較大更新, 變成了我們現在使用的S語言,稱為第二版。 1988年出版的“藍皮書” (Becker, Chambers, and Wilks 1988) 做了總結。

1992年出版的“白皮書” (Chambers and Hastie 1992) 描述了在S語言中實作的統計模組化功能, 增強了面向對象的特性。軟體稱為第三版,這是我們現在用的多數版本。

1998年出版的“綠皮書” (Chambers 2008) 描述了第四版S語言,主要是程式設計功能的深層次改進。 現行的S系統并沒有都采用第四版,S-PLUS的第5版才采用了S語言第四版。

S語言商業版本為S-PLUS, 1988年釋出,現在為Tibco Software擁有。 命運多舛,多次易主。

R是一個自由軟體,GPL授權, 最初由紐西蘭Auckland 大學的Ross Ihaka 和 Robert Gentleman于1997年釋出, R實作了與S語言基本相同的功能和統計功能。 現在由R核心團隊開發,但全世界的使用者都可以貢獻軟體包。

R的網站: http://www.r-project.org/

2、R語言特點

  1. 自由軟體,免費、開放源代碼,支援各個主要計算機系統;
  2. 完整的程式設計語言,基于函數和對象,可以自定義函數,調入C、C++、Fortran編譯的代碼;
  3. 具有完善的資料類型,如向量、矩陣、因子、資料集、一般對象等,支援缺失值,代碼像僞代碼一樣簡潔、可讀;
  4. 強調互動式資料分析,支援複雜算法描述,圖形功能強;
  5. 實作了經典的、現代的統計方法,如參數和非參數假設檢驗、線性回歸、廣義線性回歸、非線性回歸、可加模型、樹回歸、混合模型、方差分析、判别、聚類、時間序列分析等。
  6. 統計科研工作者廣泛使用R進行計算和發表算法。R有上萬軟體包(截止2019年7月有一萬四千多個)

    3、R語言和R軟體的技術特點

    1、 函數程式設計(functional programming)。R語言雖然不是嚴格的functional

    programming語言,但可以遵照其原則程式設計,得到可驗證的可靠程式。

    2、支援對象類和類方法。基于對象的程式設計。

    3、是動态類型語言,解釋執行,運作速度較慢。

    4、資料框是基本的觀測資料類型,類似于資料庫的表。

    5、開源軟體(Open source software)。可深入探查,開發者和使用者互動。

    6、可以用作C和C++、FORTRAN語言編寫的算法庫的接口。

    7、主要數值算法采用已廣泛測試和采納的算法實作,如排序、随機數生成、線性代數(LAPACK軟體包)。

    推薦書籍

    1、Hadley Wickham and Garrett Grolemund(2017) “R for Data Science”,https://r4ds.had.co.nz/, O’Reilly, 講基本的資料整理、彙總。

    2、Hadley Wickham(2019) “Advanced R”, 2nd ed., https://adv-r.hadley.nz/, Chapman & Hall/CRC The R Series,進階R程式設計,屬于對R進階程式設計技術的講解。

    3、Hadley Wickham(2016) ggplot2 Elegant Graphics for Data Analysis, 2nd ed., https://ggplot2-book.org/, Springer,優雅易用的R作圖功能。

    4、Susan Holmes, Wolfgang Huber(2020) Modern Statistics for Modern Biology, https://www.huber.embl.de/msmb/index.html, R的統計功能在生物學中的應用

    5、R網站上的初學者手冊“An Introduction to R”和其它技術手冊。

    6、John M. Chambers(2008), “Software for Data Analysis-Programming with R”, Springer.

    7、Venables, W. N. & Ripley, B. D.(2002) “Modern Applied Statistics with S”, Springer

    8、R.L. Kabacoff(2012)《R語言實戰》,人民郵電出版社。

    9、薛毅、陳立萍(2007)《統計模組化與R軟體》,清華大學出版社。

    10、湯銀才(2008),《R語言與統計分析》,高等教育出版社。

    11、李東風(2006)《統計軟體教程》,人民郵電出版社。

繼續閱讀