跳转到内容

R语言:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Tommyren留言 | 贡献
TIOBE更新
标签修改數值 可视化编辑
Tommyren留言 | 贡献
top
第31行: 第31行:


== 发展历程 ==
== 发展历程 ==
R语言以S语言为基础,增加了Scheme语言中[[词法作用域]]这一机制,使程序员得以将代码中某一对象的适用范围限制到一小段代码之中。<ref>{{Cite journal|title=Evaluating the Design of the R Language|url=https://link.springer.com/chapter/10.1007/978-3-642-31057-7_6|last=Morandat|first=Floréal|last2=Hill|first2=Brandon|date=2012|journal=ECOOP 2012 – Object-Oriented Programming|publisher=Springer|doi=10.1007/978-3-642-31057-7_6|editor-last=Noble|editor-first=James|series=Lecture Notes in Computer Science|location=Berlin, Heidelberg|pages=104–131|language=en|isbn=978-3-642-31057-7|last3=Osvald|first3=Leo|last4=Vitek|first4=Jan}}</ref>S由里克·贝克尔、{{le|约翰·钱伯斯|John Chambers (statistician)}}、道格·邓恩、琼·麦克雷、以及朱迪·席林于1976年前后于[[贝尔实验室]]发明。<ref>{{Cite journal|title=A Brief History of S|url=https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.1428&rank=6&q=a%20brief%20history%20of%20S&osm=&ossid=|last=Becker|first=Richard A.}}</ref>通常用S语言编写的代码都可以不作修改地在R环境下运行。<ref>{{Cite web|title=R: What is R?|url=https://www.r-project.org/about.html|access-date=2021-07-18|work=www.r-project.org}}</ref>Scheme由[[傑拉德·傑伊·薩斯曼|杰拉尔德 ·J·萨斯曼]]和[[小蓋伊·史提爾|小盖伊·L·斯蒂尔]]于1975年前后在[[麻省理工学院]]发明。<ref>{{Cite journal|title=The First Report on Scheme Revisited|url=https://doi.org/10.1023/A:1010079421970|last=Sussman|first=Gerald Jay|last2=Steele|first2=Guy L.|date=1998-12-01|journal=Higher-Order and Symbolic Computation|issue=4|doi=10.1023/A:1010079421970|volume=11|pages=399–404|language=en|issn=1573-0557}}</ref>
R语言以S语言为基础,增加了Scheme语言中[[词法作用域]]这一机制,使程序员得以将代码中某一对象的适用范围限制到一小段代码之中。<ref>{{Cite journal|title=Evaluating the Design of the R Language|url=https://link.springer.com/chapter/10.1007/978-3-642-31057-7_6|last=Morandat|first=Floréal|last2=Hill|first2=Brandon|date=2012|journal=ECOOP 2012 – Object-Oriented Programming|publisher=Springer|doi=10.1007/978-3-642-31057-7_6|editor-last=Noble|editor-first=James|series=Lecture Notes in Computer Science|location=Berlin, Heidelberg|pages=104–131|language=en|isbn=978-3-642-31057-7|last3=Osvald|first3=Leo|last4=Vitek|first4=Jan}}</ref>S由里克·贝克尔、{{le|约翰·钱伯斯|John Chambers (statistician)}}、道格·邓恩、琼·麦克雷、以及朱迪·席林于1976年前后于[[贝尔实验室]]发明。<ref>{{Cite journal|title=A Brief History of S|url=https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.1428&rank=6&q=a%20brief%20history%20of%20S&osm=&ossid=|last=Becker|first=Richard A.}}</ref>通常用S语言编写的代码都可以不作修改地在R环境下运行。<ref>{{Cite web|title=R: What is R?|url=https://www.r-project.org/about.html|access-date=2021-07-18|work=www.r-project.org}}</ref>Scheme由[[傑拉德·傑伊·薩斯曼|杰拉尔德·J·萨斯曼]]和[[小蓋伊·史提爾|小盖伊·L·斯蒂尔]]于1975年前后在[[麻省理工学院]]发明。<ref>{{Cite journal|title=The First Report on Scheme Revisited|url=https://doi.org/10.1023/A:1010079421970|last=Sussman|first=Gerald Jay|last2=Steele|first2=Guy L.|date=1998-12-01|journal=Higher-Order and Symbolic Computation|issue=4|doi=10.1023/A:1010079421970|volume=11|pages=399–404|language=en|issn=1573-0557}}</ref>


1991年,新西兰奥克兰大学的统计学家罗斯·伊哈卡和罗伯特·杰特曼开始对S语言的一个新版本进行开发。<ref>{{Cite web|title=Academic unfazed by rock star status|url=https://www.nzherald.co.nz/nz/academic-unfazed-by-rock-star-status/LMU5EIMP7QCMZFCBM3UNW4C7CI/|access-date=2022-01-03|work=NZ Herald|language=en-NZ}}</ref>伊哈卡与杰特曼两人名字首字母都是R,R语言因此得名。同时,R这个单一字母的名字也表明R语言与S语言一脉相承。<ref name=":02" />1993年8月,伊哈卡与杰特曼在数据平台StatLib和邮件列表s-news中发布了R的早期版本。1995年,在统计学家马丁·梅克勒的建议下,伊哈卡与杰特曼通过[[GNU通用公共许可证]]把R做成了一款免费开源软件。软件于1995年6月进行了首次官方发布。<ref>{{Cite web|title=R : Past and Future History -- A Free Software Project|url=https://cran.r-project.org/doc/html/interface98-paper/paper_2.html|access-date=2022-01-03|work=cran.r-project.org}}</ref>首个稳定测试版本(1.0)于2000年2月29日发布。<ref>{{Cite web|title=The R Project: A Brief History and Thoughts About the Future|url=https://www.stat.auckland.ac.nz/~ihaka/downloads/Massey.pdf|access-date=2022-01-03|author=Ross Ihaka|format=pdf|publisher=Ross Ihaka|language=en}}</ref>
1991年,新西兰奥克兰大学的统计学家罗斯·伊哈卡和罗伯特·杰特曼开始对S语言的一个新版本进行开发。<ref>{{Cite web|title=Academic unfazed by rock star status|url=https://www.nzherald.co.nz/nz/academic-unfazed-by-rock-star-status/LMU5EIMP7QCMZFCBM3UNW4C7CI/|access-date=2022-01-03|work=NZ Herald|language=en-NZ}}</ref>伊哈卡与杰特曼两人名字首字母都是R,R语言因此得名。同时,R这个单一字母的名字也表明R语言与S语言一脉相承。<ref name=":02" />1993年8月,伊哈卡与杰特曼在数据平台StatLib和邮件列表s-news中发布了R的早期版本。1995年,在统计学家马丁·梅克勒的建议下,伊哈卡与杰特曼通过[[GNU通用公共许可证]]把R做成了一款免费开源软件。软件于1995年6月进行了首次官方发布。<ref>{{Cite web|title=R : Past and Future History -- A Free Software Project|url=https://cran.r-project.org/doc/html/interface98-paper/paper_2.html|access-date=2022-01-03|work=cran.r-project.org}}</ref>首个稳定测试版本(1.0)于2000年2月29日发布。<ref>{{Cite web|title=The R Project: A Brief History and Thoughts About the Future|url=https://www.stat.auckland.ac.nz/~ihaka/downloads/Massey.pdf|access-date=2022-01-03|author=Ross Ihaka|format=pdf|publisher=Ross Ihaka|language=en}}</ref>

2022年1月12日 (三) 16:59的版本

R
编程范型多重編程範式阵列式物件導向函數式反射式指令式[1]过程式[2]
設計者罗斯·伊哈卡罗伯特·杰特曼
實作者R核心開發小組
发行时间1993年8月,​31年前​(1993-08
当前版本
  • 4.4.2(2024年10月31日;穩定版本)[3]
編輯維基數據鏈接
型態系統动态类型[4]
文件扩展名
網站www.r-project.org 編輯維基數據鏈接
啟發語言
S語言SchemeCommon Lisp[來源請求]
影響語言
Julia[7]

R语言是一種自由軟體程式語言與操作環境,主要用于统计分析、绘图以及数据挖掘。R本來由來自新西蘭奧克蘭大學的统计学家罗斯·伊哈卡罗伯特·杰特曼開發,現在由R核心小组負責開發,同时也有其他用户编写了诸多外挂的软件包。R以S语言为基础,其語法來自Scheme。R的后台程序大多由C语言FORTRAN语言和R自己写成。[8]

R语言是GNU計劃的一个项目,所以其原始碼可自由下載使用。R也有已編譯的執行檔版本可以下載,可在多种平台下运行,包括UNIX(也包括FreeBSDLinux)、WindowsMacOS[8]R可以以命令行操作,[8]同時有人開發了幾種圖形用戶界面,其中包括RStudio[8]Jupyter[9]

在TIOBE2022年1月对编程语言人气的排名中,R排名第12。[10]

发展历程

R语言以S语言为基础,增加了Scheme语言中词法作用域这一机制,使程序员得以将代码中某一对象的适用范围限制到一小段代码之中。[11]S由里克·贝克尔、约翰·钱伯斯英语John Chambers (statistician)、道格·邓恩、琼·麦克雷、以及朱迪·席林于1976年前后于贝尔实验室发明。[12]通常用S语言编写的代码都可以不作修改地在R环境下运行。[13]Scheme由杰拉尔德·J·萨斯曼小盖伊·L·斯蒂尔于1975年前后在麻省理工学院发明。[14]

1991年,新西兰奥克兰大学的统计学家罗斯·伊哈卡和罗伯特·杰特曼开始对S语言的一个新版本进行开发。[15]伊哈卡与杰特曼两人名字首字母都是R,R语言因此得名。同时,R这个单一字母的名字也表明R语言与S语言一脉相承。[8]1993年8月,伊哈卡与杰特曼在数据平台StatLib和邮件列表s-news中发布了R的早期版本。1995年,在统计学家马丁·梅克勒的建议下,伊哈卡与杰特曼通过GNU通用公共许可证把R做成了一款免费开源软件。软件于1995年6月进行了首次官方发布。[16]首个稳定测试版本(1.0)于2000年2月29日发布。[17]

R综合档案网(Comprehensive R Archive Network;CRAN)于1997年4月23日正式上线。CRAN除了收藏了R的執行檔下載版、原始碼和說明文件,也收錄了各種用戶撰寫的軟件包。CRAN最早有3个镜像以及12个软件包。[18]截止2022年1月,CRAN有102個鏡像站[19]以及18650个软件包。[20]

同样在1997年,R核心小组正式成立,以进一步对R语言进行开发。截止2022年1月,小组成员包括伊哈卡、杰特曼、钱伯斯以及梅克勒,同时也包括了统计学家库尔特·奥尔尼克英语Kurt Hornik、道格拉斯·贝茨、彼得·达尔高英语Peter Dalgaard卢克·蒂尔尼英语Luke Tierney、弗里德里希·莱施、托马斯·拉姆利英语Thomas Lumley、邓肯·坦普尔·朗、迈克尔·劳伦斯、乌韦·利格斯、布莱恩·里普利、塞巴斯蒂安·迈耶、保罗·默雷尔、马丁·普卢默、迪伊潘·萨卡尔、西蒙·乌尔巴内克以及计算机科学家托马斯·卡利贝拉。[8]小组过去的成员包括塞思·福尔肯、圭多·马萨罗托、邓肯·默多克、马丁·摩根、海纳·施瓦特以及斯特凡诺·雅各斯。[21]2003年4月[22],一个名为R基金会的非盈利组织正式成立,为的是更好地对R语言的开发提供支持。[8]

功能

R內建多種統計學及數字分析功能。R的功能也可以透過安裝套件(Packages,用戶撰寫的功能)增強。因為S的血緣,R比其他統計學或數學專用的編程語言有更強的物件導向(面向对象程序设计, S3, S4等)功能。

R的另一強項是繪圖功能,製圖具有印刷的素質,也可加入數學符號。

雖然R主要用於統計分析或者開發統計相關的軟體,但也有人用作矩陣計算。其分析速度可媲美专用于矩阵计算的自由软件GNU Octave和商業軟件MATLAB[23]

套件

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

發展

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

R新聞雜誌

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

参考文献

  1. ^ Morandat, Floréal; Hill, Brandon; Osvald, Leo; Vitek, Jan. Noble, James , 编. Evaluating the Design of the R Language. ECOOP 2012 – Object-Oriented Programming. Lecture Notes in Computer Science (Berlin, Heidelberg: Springer). 2012: 104–131. ISBN 978-3-642-31057-7. doi:10.1007/978-3-642-31057-7_6 (英语). 
  2. ^ White, Homer. Programming Paradigms. Beginning Computer Science with R. 2021-01-31 [2021-07-18] (美国英语). 
  3. ^ 3.0 3.1 彼得·达尔高. 4.4.2 is released. 2024年10月31日 [2024年11月1日] (英語). 
  4. ^ jmount. Why I don’t like Dynamic Typing. Win Vector LLC. 2012-02-25 [2021-07-18] (美国英语). 
  5. ^ 引用错误:没有为名为:0的参考文献提供内容
  6. ^ R Data Format Family (.rdata, .rda). www.loc.gov. 2017-06-09 [2021-07-18]. 
  7. ^ Introduction. The Julia Manual. [2018-08-05]. (原始内容存档于20 June 2018). 
  8. ^ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 R FAQ. cran.r-project.org. [2021-07-18]. 
  9. ^ Using the R programming language in Jupyter Notebook — Anaconda documentation. docs.anaconda.com. [2021-12-29]. 
  10. ^ index | TIOBE - The Software Quality Company. www.tiobe.com. [2021-07-18]. 
  11. ^ Morandat, Floréal; Hill, Brandon; Osvald, Leo; Vitek, Jan. Noble, James , 编. Evaluating the Design of the R Language. ECOOP 2012 – Object-Oriented Programming. Lecture Notes in Computer Science (Berlin, Heidelberg: Springer). 2012: 104–131. ISBN 978-3-642-31057-7. doi:10.1007/978-3-642-31057-7_6 (英语). 
  12. ^ Becker, Richard A. A Brief History of S. 
  13. ^ R: What is R?. www.r-project.org. [2021-07-18]. 
  14. ^ Sussman, Gerald Jay; Steele, Guy L. The First Report on Scheme Revisited. Higher-Order and Symbolic Computation. 1998-12-01, 11 (4): 399–404. ISSN 1573-0557. doi:10.1023/A:1010079421970 (英语). 
  15. ^ Academic unfazed by rock star status. NZ Herald. [2022-01-03] (New Zealand English). 
  16. ^ R : Past and Future History -- A Free Software Project. cran.r-project.org. [2022-01-03]. 
  17. ^ Ross Ihaka. The R Project: A Brief History and Thoughts About the Future (pdf). Ross Ihaka. [2022-01-03] (英语). 
  18. ^ ANNOUNCE: CRAN. stat.ethz.ch. [2022-01-03]. 
  19. ^ The Comprehensive R Archive Network. cran.r-project.org. [2022-01-03]. 
  20. ^ CRAN - Contributed Packages. cran.r-project.org. [2022-01-03]. 
  21. ^ R: Contributors. www.r-project.org. [2022-01-03]. 
  22. ^ Martin Mächler. Kurt Hornik. R Foundation News (PDF). The R Journal. 2014, 6 (2): 190-191. 
  23. ^ 存档副本. [2007-11-03]. (原始内容存档于2009-08-08). 
  24. ^ 存档副本. [2007-06-04]. (原始内容存档于2007-06-25). 
  25. ^ Gnumeric, Team. Gnumeric 1.4 is Here!. The GNOME Project. 2004年12月19日 [2006-04-30]. (原始内容存档于2006年10月5日). 
  26. ^ 存档副本. [2007-06-04]. (原始内容存档于2007-05-28). 

外部链接

参见