R語言


R語言介紹

R語言是一種自由軟體程式語言與操作環境,主要用於統計分析、繪圖以及資料探勘。R本來由來自紐西蘭奧克蘭大學的統計學家羅斯·伊哈卡和羅伯特·傑特曼開發,現在由R核心小組負責開發,同時也有其他使用者編寫了諸多外掛的軟體套件。R以S語言為基礎,其語法來自Scheme。R的後台程式大多由C語言、FORTRAN語言和R自己寫成。

R語言是GNU計劃的一個專案,所以其原始碼可自由下載使用。R也有已編譯的執行檔版本可以下載,可在多種平台下執行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R可以以命令列操作,同時有人開發了幾種圖形使用者介面,其中包括RStudio與Jupyter。

在TIOBE2022年1月對程式語言人氣的排名中,R排名第12。

發展歷程

R語言以S語言為基礎,增加了Scheme語言中詞法作用域這一機制,使程式設計師得以將代碼中某一物件的適用範圍限制到一小段代碼之中。S由里克·貝克爾、約翰·錢伯斯、道格·鄧恩、瓊·麥克雷、以及朱迪·席林於1976年前後於貝爾實驗室發明。S是一種用於資料分析的直譯語言,無需編譯器即可執行。通常用S語言編寫的代碼都可以不作修改地在R環境下執行。Scheme是Lisp語言的一個分支,由傑拉爾德·J·薩斯曼和小蓋伊·L·斯蒂爾於1975年前後在麻省理工學院發明。

1991年,紐西蘭奧克蘭大學的統計學家羅斯·伊哈卡和羅伯特·傑特曼開始對S語言的一個新版本進行開發。伊哈卡與傑特曼兩人名字首字母都是R,R語言因此得名。同時,R這個單一字母的名字也表明R語言與S語言一脈相承。1993年8月,伊哈卡與傑特曼在資料平台StatLib和郵寄清單s-news中釋出了R的早期版本。1995年,在統計學家馬丁·梅克勒的建議下,伊哈卡與傑特曼通過GNU通用公眾授權條款把R做成了一款免費開源軟體。軟體於1995年6月進行了首次官方釋出。首個穩定測試版本(1.0)於2000年2月29日釋出。

R綜合檔案網(Comprehensive R Archive Network;CRAN)於1997年4月23日正式上線。CRAN除了收藏了R的執行檔下載版、原始碼和說明文件,也收錄了各種使用者撰寫的軟體包。CRAN最早有3個鏡像以及12個軟體套件。截止2022年1月,CRAN有101個鏡像站以及18728個軟體套件。

同樣在1997年,R核心小組正式成立,以進一步對R語言進行開發。截止2022年1月,小組成員包括伊哈卡、傑特曼、錢伯斯以及梅克勒,同時也包括了統計學家庫爾特·奧爾尼克、道格拉斯·貝茨、彼得·達爾高盧克·蒂爾尼、弗里德里希·萊施、托馬斯·拉姆利、鄧肯·坦普爾·朗、麥可·勞倫斯、烏韋·利格斯、布萊恩·里普利、塞巴斯蒂安·邁耶、保羅·默雷爾、馬丁·普盧默、迪伊潘·薩卡爾、西蒙·烏爾巴內克以及電腦科學家托馬斯·卡利貝拉。小組過去的成員包括塞思·福爾肯、圭多·馬薩羅托、鄧肯·默多克、馬丁·摩根、海納·施瓦特以及斯特凡諾·雅各斯。2003年4月,一個名為R基金會的非盈利組織正式成立,為的是更好地對R語言的開發提供支援。

內建功能

R主要用於資料分析。在R語言中,用於資訊儲存的資料結構包括向量、陣列、列表以及資料框。向量指一組帶有固定順序, 資料類型唯一的字串或數值,其內容可以填寫到一維或多維的陣列之中。二維陣列也叫做矩陣。R支援各種陣列運算,與自由軟體GNU Octave和商業軟體MATLAB的功能有所重疊。列表指一組資料類型可能有所不同的物件。一個字串向量與數值向量合在一起就可以成為一個列表。資料框本質上是一個列表,裡面包含了一個或多個長度相同的向量。資料框將這些向量合併成表格,每一行都有一個單一的名稱。純量這一資料類型在R語言中並不存在,所謂的純量就是一個長度為一的向量。

使用者可以用R來進行一些基本的統計檢驗,構建線性及非線性的模型,對時間序列加以分析,或對資料進行分類與聚類分析。R的另一強項是繪圖功能,畫出的圖表能夠達到專業出版物的要求,也可加入數學符號。計算強度較大時,使用者可在程式中嵌入C、C++以及FORTRAN語言以幫助運算。

因為S的血緣,R比其他統計學或數學專用的程式語言有更強的物件導向(物件導向程式設計, S3, S4等)功能。

套件

R的功能能夠透過由使用者撰寫的套件(Packages)增強。增加的功能有特殊的統計技術、繪圖功能,以及編程介面和數據輸出/輸入功能。這些軟體包是由R語言、LaTeX、Java及最常用C語言和Fortran撰寫。下載的執行檔版本會連同一批核心功能的軟體包,而根據CRAN紀錄有一萬多種不同的軟體包。其中有幾款較為常用,例如用於經濟計量、財經分析、人文科學與社會科學研究以及人工智慧。

發展

生物資訊學社群時常使用R進行分子生物學數據分析。Bioconductor計劃就是讓R作為基因圖譜分析工具。 Gnumeric開發者正和R開發者合作,改善Gnumeric計算結果的精確度。

R新聞雜誌

《R新聞雜誌》(R Newsletter)每年會出版兩至三次,為一份免費的電子雜誌,內容有關統計學軟體發展及R語言開發資訊。第一期在2001年一月出版。從2008年開始,被R Journal替代。

資料參考