fbpx
维基百科

R语言

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

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

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

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

发展历程

R语言以S语言为基础,增加了Scheme语言中词法作用域这一机制,使程序员得以将代码中某一对象的适用范围限制到一小段代码之中。[1]S由里克·贝克尔、约翰·钱伯斯英语John Chambers (statistician)、道格·邓恩、琼·麦克雷、以及朱迪·席林于1976年前后于贝尔实验室发明。[11]S是一种用于数据分析的解释型语言,无需编译器即可运行。通常用S语言编写的代码都可以不作修改地在R环境下运行。[12]Scheme是Lisp语言的一个分支,[13]杰拉尔德·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有101個鏡像站[19]以及18728个软件包。[20]

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

内置功能

R主要用于数据分析。在R语言中,用于信息存储的数据结构包括向量数组列表以及数据框。向量指一组带有固定顺序, 数据类型唯一的字串或数值,其内容可以填写到一维或多维的数组之中。二维数组也叫做矩阵[23]R支持各种数组运算,与自由软件GNU Octave和商業軟件MATLAB的功能有所重叠。[24][25]列表指一组数据类型可能有所不同的对象。一个字串向量与数值向量合在一起就可以成为一个列表。数据框本质上是一个列表,里面包含了一个或多个长度相同的向量。数据框将这些向量合并成表格,每一行都有一个单一的名称。[23]标量这一数据类型在R语言中并不存在,所谓的标量就是一个长度为一的向量。[26]

用户可以用R来进行一些基本的统计检验,构建线性及非线性的模型,对时间序列加以分析,或对数据进行分类与聚类分析。R的另一強項是繪圖功能,画出的图表能够达到专业出版物的要求,也可加入數學符號。计算强度较大时,用户可在程序中嵌入C、C++以及FORTRAN语言以帮助运算。[27]

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

套件

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

發展

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

R新聞雜誌

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

例子

基本语法

下面的例子展示基本的语言语法和命令行界面使用。在R语言中,一般偏好采用两字符合成箭头的赋值算符<-,但是在某些情况也可以使用=[31][32]

> x <- 1:6 # 在当前环境中创建数值向量。 > y <- x^2 # 基于在x中的值创建向量。 > print(y) # 打印向量的内容。 [1] 1 4 9 16 25 36 > z <- x + y # 创建是为x与y的和的新向量。 > z # 返回z的内容至当前环境。 [1] 2 6 12 20 30 42 > z_matrix <- matrix(z, nrow=3) # 创建将向量z转变为3x2矩阵对象的新矩阵。 > z_matrix  [,1] [,2] [1,] 2 20 [2,] 6 30 [3,] 12 42 > 2*t(z_matrix)-2 # 转置这个矩阵,对每个元素乘以2,从矩阵中每个元素减去2,并返回结果至终端。  [,1] [,2] [,3] [1,] 2 10 22 [2,] 38 58 82 > new_df <- data.frame(t(z_matrix), row.names=c('A','B')) # 创建包含来自转置的z_matrix的数据的新data.frame对象,具有行名字'A'和'B'。 > names(new_df) <- c('X','Y','Z') # 设置new_df的列名字为X、Y和Z。 > print(new_df) # 打印当前结果。  X Y Z A 2 6 12 B 20 30 42 > new_df$Z # 输出Z列。 [1] 12 42 > new_df$Z==new_df['Z'] && new_df[3]==new_df$Z # data.frame的Z列可以使用$Z、['Z']或[3]语法来访问,得到的值是相同的。  [1] TRUE > attributes(new_df) # 打印关于new_df对象的特性信息。 $names [1] "X" "Y" "Z" $row.names [1] "A" "B" $class [1] "data.frame" > attributes(new_df)$row.names <- c('one','two') # 访问并接着变更row.names特性;还可以使用rownames()来完成。 > new_df  X Y Z one 2 6 12 two 20 30 42 

函数的结构

R语言的力量之一是易于创建新函数。在函数体内的对象保持局部于这个函数,而且可以返回任何数据类型[33]。例如:

# 声明函数“f”具有参数“x”、“y“。 # 它返回x和y的线性组合。 f <- function(x, y) { z <- 3 * x + 4 * y return(z) ## 这里的return()函数是可选的。 } 
> f(1, 2) [1] 11 > f(c(1,2,3), c(5,3,4)) [1] 23 18 25 > f(1:3, 4) [1] 19 22 25 

建模和绘图

R语言对数据建模和图形有内建支持。下列例子展示R语言如何轻易的生成并绘制带有残差线性回归模型。

 
出自绘制“模型” (例子中“plot.lm()”函数)的诊断图。
> x <- 1:6 # 创建x和y值。 > y <- x^2 > model <- lm(y ~ x) # 线性回归模型y = A + B * x。 > summary(model) # 显示这个模型的深入总结。 Call: lm(formula = y ~ x) Residuals:  1 2 3 4 5 6 7 8 9 10  3.3333 -0.6667 -2.6667 -2.6667 -0.6667 3.3333 Coefficients:  Estimate Std. Error t value Pr(>|t|)  (Intercept) -9.3333 2.8441 -3.282 0.030453 *  x 7.0000 0.7303 9.585 0.000662 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.055 on 4 degrees of freedom Multiple R-squared: 0.9583, Adjusted R-squared: 0.9478 F-statistic: 91.88 on 1 and 4 DF, p-value: 0.000662 > par(mfrow = c(2, 2)) # 创建2乘2格局的图表。 > plot(model) # 输出这个模型的诊断图。 

曼德博集合

通过对方程z = z2 + c的前20次迭代计算曼德博集合的简短R代码,它针对不同的复数常量c而绘图。这个例子展示了:

 
"Mandelbrot.gif" – R语言用14行代码创建的图形。
  • 使用社区开发库(叫做包),这里是caTools包;
  • 处理复数
  • 多维数值数组作为基本数据类型,用于变量CZX
install.packages("caTools") # 安装外部包。 library(caTools) # 这个外部包提供write.gif函数。 jet.colors <- colorRampPalette(c("green", "pink", "#007FFF", "cyan", "#7FFF7F", "white", "#FF7F00", "red", "#7F0000")) dx <- 1500 # 定义宽度。 dy <- 1400 # 定义高度。 C <- complex(real = rep(seq(-2.2, 1.0, length.out = dx), each = dy), imag = rep(seq(-1.2, 1.2, length.out = dy), dx)) C <- matrix(C, dy, dx) # 重制形状为复数的方块矩阵。 Z <- 0 # 初始化Z为零。 X <- array(0, c(dy, dx, 20)) # 初始化输出3D数组。 for (k in 1:20) { # 循环具有20次迭代。 Z <- Z^2 + C # 中心差分方程。 X[, , k] <- exp(-abs(Z)) # 捕获结果。 } write.gif(X, "Mandelbrot.gif", col = jet.colors, delay = 100) 

参考文献

  1. ^ 1.0 1.1 Morandat, Floréal; Hill, Brandon; Osvald, Leo; Vitek, Jan. Noble, James , 编. . ECOOP 2012 – Object-Oriented Programming. Lecture Notes in Computer Science (Berlin, Heidelberg: Springer). 2012: 104–131 [2021-07-18]. ISBN 978-3-642-31057-7. doi:10.1007/978-3-642-31057-7_6. (原始内容存档于2021-07-18) (英语). 
  2. ^ White, Homer. . Beginning Computer Science with R. 2021-01-31 [2021-07-18]. (原始内容存档于2021-07-18) (美国英语). 
  3. ^ 彼得·达尔高. R 4.2.2 is released. 2022年10月31日 [2022年11月2日]. 
  4. ^ jmount. . Win Vector LLC. 2012-02-25 [2021-07-18]. (原始内容存档于2021-07-17) (美国英语). 
  5. ^ . mercury.webster.edu. [2021-07-17]. (原始内容存档于2022-01-15). 
  6. ^ . www.loc.gov. 2017-06-09 [2021-07-18]. (原始内容存档于2021-07-17). 
  7. ^ . The Julia Manual. [2018-08-05]. (原始内容存档于20 June 2018). 
  8. ^ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 . cran.r-project.org. [2021-07-18]. (原始内容存档于2011-07-09). 
  9. ^ . docs.anaconda.com. [2021-12-29]. (原始内容存档于2022-04-26). 
  10. ^ . www.tiobe.com. [2021-07-18]. (原始内容存档于2018-02-25). 
  11. ^ Becker, Richard A. . [2022-01-03]. (原始内容存档于2022-01-03). 
  12. ^ . www.r-project.org. [2021-07-18]. (原始内容存档于2011-07-19). 
  13. ^ John M. Chambers. S, R, and Data Science. The R Journal. 2020, 11 (1): 462-476. 
  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. ^ . NZ Herald. [2022-01-03]. (原始内容存档于2022-04-11) (en-NZ). 
  16. ^ . cran.r-project.org. [2022-01-03]. (原始内容存档于2017-07-11). 
  17. ^ Ross Ihaka. (PDF). Ross Ihaka. [2022-01-03]. (原始内容 (pdf)存档于2018-02-02) (英语). 
  18. ^ . stat.ethz.ch. [2022-01-03]. (原始内容存档于2021-03-08). 
  19. ^ . cran.r-project.org. [2022-01-15]. (原始内容存档于2022-05-10). 
  20. ^ . cran.r-project.org. [2022-01-03]. (原始内容存档于2022-04-11). 
  21. ^ . www.r-project.org. [2022-01-03]. (原始内容存档于2022-04-23). 
  22. ^ Martin Mächler. Kurt Hornik. (PDF). The R Journal. 2014, 6 (2): 190-191 [2022-01-03]. (原始内容 (PDF)存档于2022-01-20). 
  23. ^ 23.0 23.1 Dalgaard, Peter. Basics. Dalgaard, Peter (编). Introductory Statistics with R. Statistics and Computing. New York, NY: Springer. 2008: 1–29. ISBN 978-0-387-79054-1. doi:10.1007/978-0-387-79054-1_1 (英语). 
  24. ^ . [2007-11-03]. (原始内容存档于2009-08-08). 
  25. ^ Han-feng Chen, Wai-Mee Ching, and Da Zheng. (PDF). McGill University. [March 9, 2022]. (原始内容 (PDF)存档于2022-03-03) (英语). 
  26. ^ . adv-r.had.co.nz. [2022-03-09]. (原始内容存档于2016-09-20). 
  27. ^ . www.r-project.org. [2022-03-09]. (原始内容存档于2011-07-19). 
  28. ^ . [2007-06-04]. (原始内容存档于2007-06-25). 
  29. ^ Gnumeric, Team. . The GNOME Project. 2004年12月19日 [2006-04-30]. (原始内容存档于2006年10月5日). 
  30. ^ 存档副本. [2007-06-04]. (原始内容于2007-05-28). 
  31. ^ R Development Core Team. Assignments with the = Operator. [2018-09-11]. 
  32. ^ most used assignment operator in R is <-
    • R Development Core Team. Writing R Extensions. [2018-09-11]. [...] we recommend the consistent use of the preferred assignment operator ‘<-’ (rather than ‘=’) for assignment. 
    • Google's R Style Guide. [2018-09-11]. 
    • Wickham, Hadley. Style Guide. [2018-09-11]. 
    • Bengtsson, Henrik. R Coding Conventions (RCC) – a draft. January 2009 [2018-09-11]. 
  33. ^ Kabacoff, Robert. Quick-R: User-Defined Functions. statmethods.net. 2012 [2018-09-28]. 

外部链接

参见

r语言, 是一種自由軟體程式語言與操作環境, 主要用于统计分析, 绘图以及数据挖掘, r本來由來自新西蘭奧克蘭大學的统计学家罗斯, 伊哈卡和罗伯特, 杰特曼開發, 現在由r核心小组負責開發, 同时也有其他用户编写了诸多外挂的软件包, r以s语言为基础, 其词法作用域语义來自scheme, r的后台程序大多由c语言, fortran语言和r自己写成, r编程范型多重編程範式, 阵列式, 物件導向, 函數式, 反射式, 指令式, 过程式, 設計者罗斯, 伊哈卡和罗伯特, 杰特曼實作者r核心開發小組发行时间1993年8月. R语言是一種自由軟體程式語言與操作環境 主要用于统计分析 绘图以及数据挖掘 R本來由來自新西蘭奧克蘭大學的统计学家罗斯 伊哈卡和罗伯特 杰特曼開發 現在由R核心小组負責開發 同时也有其他用户编写了诸多外挂的软件包 R以S语言为基础 其词法作用域语义來自Scheme R的后台程序大多由C语言 FORTRAN语言和R自己写成 8 R编程范型多重編程範式 阵列式 物件導向 函數式 反射式 指令式 1 过程式 2 設計者罗斯 伊哈卡和罗伯特 杰特曼實作者R核心開發小組发行时间1993年8月 29年前 1993 08 穩定版本4 2 2 3 2022年10月31日 2個月前 型態系統动态类型 4 文件扩展名 r 5 rdata rds rda 6 網站www wbr r project wbr org啟發語言S Scheme Lisp影響語言Julia 7 維基教科書中有關R Programming的文本R语言是GNU計劃的一个项目 所以其原始碼可自由下載使用 R也有已編譯的執行檔版本可以下載 可在多种平台下运行 包括UNIX 也包括FreeBSD和Linux Windows和MacOS 8 R可以以命令行操作 8 同時有人開發了幾種圖形用戶界面 其中包括RStudio 8 与Jupyter 9 在TIOBE2022年1月对编程语言人气的排名中 R排名第12 10 目录 1 发展历程 2 内置功能 3 套件 4 發展 5 R新聞雜誌 6 例子 6 1 基本语法 6 2 函数的结构 6 3 建模和绘图 6 4 曼德博集合 7 参考文献 8 外部链接 9 参见发展历程 编辑R语言以S语言为基础 增加了Scheme语言中词法作用域这一机制 使程序员得以将代码中某一对象的适用范围限制到一小段代码之中 1 S由里克 贝克尔 约翰 钱伯斯 英语 John Chambers statistician 道格 邓恩 琼 麦克雷 以及朱迪 席林于1976年前后于贝尔实验室发明 11 S是一种用于数据分析的解释型语言 无需编译器即可运行 通常用S语言编写的代码都可以不作修改地在R环境下运行 12 Scheme是Lisp语言的一个分支 13 由杰拉尔德 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有101個鏡像站 19 以及18728个软件包 20 同样在1997年 R核心小组正式成立 以进一步对R语言进行开发 截止2022年1月 小组成员包括伊哈卡 杰特曼 钱伯斯以及梅克勒 同时也包括了统计学家库尔特 奥尔尼克 英语 Kurt Hornik 道格拉斯 贝茨 彼得 达尔高 英语 Peter Dalgaard 卢克 蒂尔尼 英语 Luke Tierney 弗里德里希 莱施 托马斯 拉姆利 英语 Thomas Lumley 邓肯 坦普尔 朗 迈克尔 劳伦斯 乌韦 利格斯 布莱恩 里普利 塞巴斯蒂安 迈耶 保罗 默雷尔 马丁 普卢默 迪伊潘 萨卡尔 西蒙 乌尔巴内克以及计算机科学家托马斯 卡利贝拉 8 小组过去的成员包括塞思 福尔肯 圭多 马萨罗托 邓肯 默多克 马丁 摩根 海纳 施瓦特以及斯特凡诺 雅各斯 21 2003年4月 22 一个名为R基金会的非盈利组织正式成立 为的是更好地对R语言的开发提供支持 8 内置功能 编辑R主要用于数据分析 在R语言中 用于信息存储的数据结构包括向量 数组 列表以及数据框 向量指一组带有固定顺序 数据类型唯一的字串或数值 其内容可以填写到一维或多维的数组之中 二维数组也叫做矩阵 23 R支持各种数组运算 与自由软件GNU Octave和商業軟件MATLAB的功能有所重叠 24 25 列表指一组数据类型可能有所不同的对象 一个字串向量与数值向量合在一起就可以成为一个列表 数据框本质上是一个列表 里面包含了一个或多个长度相同的向量 数据框将这些向量合并成表格 每一行都有一个单一的名称 23 标量这一数据类型在R语言中并不存在 所谓的标量就是一个长度为一的向量 26 用户可以用R来进行一些基本的统计检验 构建线性及非线性的模型 对时间序列加以分析 或对数据进行分类与聚类分析 R的另一強項是繪圖功能 画出的图表能够达到专业出版物的要求 也可加入數學符號 计算强度较大时 用户可在程序中嵌入C C 以及FORTRAN语言以帮助运算 27 因為S的血緣 R比其他統計學或數學專用的編程語言有更強的物件導向 面向对象程序设计 S3 S4等 功能 套件 编辑R的功能能夠透過由用戶撰寫的套件 Packages 增強 增加的功能有特殊的統計技術 繪圖功能 以及編程介面和數據輸出 輸入功能 這些軟件包是由R語言 LaTeX Java及最常用C語言和Fortran撰寫 下載的執行檔版本會連同一批核心功能的軟件包 而根據CRAN紀錄有一萬多種不同的軟件包 其中有幾款較為常用 例如用於經濟計量 財經分析 人文科學與社會科學研究以及人工智能 28 發展 编辑生物信息学社群時常使用R進行分子生物學數據分析 Bioconductor 英语 Bioconductor 計劃就是讓R作為基因圖譜分析工具 Gnumeric開發者正和R開發者合作 改善Gnumeric計算結果的精確度 29 R新聞雜誌 编辑 R新聞雜誌 R Newsletter 每年會出版兩至三次 為一份免費的電子雜誌 內容有關統計學軟件發展及R語言開發資訊 第一期在2001年一月出版 从2008年开始 被R Journal替代 30 例子 编辑基本语法 编辑 下面的例子展示基本的语言语法和命令行界面使用 在R语言中 一般偏好采用两字符合成箭头的赋值算符 lt 但是在某些情况也可以使用 31 32 gt x lt 1 6 在当前环境中创建数值向量 gt y lt x 2 基于在x中的值创建向量 gt print y 打印向量的内容 1 1 4 9 16 25 36 gt z lt x y 创建是为x与y的和的新向量 gt z 返回z的内容至当前环境 1 2 6 12 20 30 42 gt z matrix lt matrix z nrow 3 创建将向量z转变为3x2矩阵对象的新矩阵 gt z matrix 1 2 1 2 20 2 6 30 3 12 42 gt 2 t z matrix 2 转置这个矩阵 对每个元素乘以2 从矩阵中每个元素减去2 并返回结果至终端 1 2 3 1 2 10 22 2 38 58 82 gt new df lt data frame t z matrix row names c A B 创建包含来自转置的z matrix的数据的新data frame对象 具有行名字 A 和 B gt names new df lt c X Y Z 设置new df的列名字为X Y和Z gt print new df 打印当前结果 X Y Z A 2 6 12 B 20 30 42 gt new df Z 输出Z列 1 12 42 gt new df Z new df Z amp amp new df 3 new df Z data frame的Z列可以使用 Z Z 或 3 语法来访问 得到的值是相同的 1 TRUE gt attributes new df 打印关于new df对象的特性信息 names 1 X Y Z row names 1 A B class 1 data frame gt attributes new df row names lt c one two 访问并接着变更row names特性 还可以使用rownames 来完成 gt new df X Y Z one 2 6 12 two 20 30 42 函数的结构 编辑 R语言的力量之一是易于创建新函数 在函数体内的对象保持局部于这个函数 而且可以返回任何数据类型 33 例如 声明函数 f 具有参数 x y 它返回x和y的线性组合 f lt function x y z lt 3 x 4 y return z 这里的return 函数是可选的 gt f 1 2 1 11 gt f c 1 2 3 c 5 3 4 1 23 18 25 gt f 1 3 4 1 19 22 25 建模和绘图 编辑 R语言对数据建模和图形有内建支持 下列例子展示R语言如何轻易的生成并绘制带有残差的线性回归模型 出自绘制 模型 例子中 plot lm 函数 的诊断图 gt x lt 1 6 创建x和y值 gt y lt x 2 gt model lt lm y x 线性回归模型y A B x gt summary model 显示这个模型的深入总结 Call lm formula y x Residuals 1 2 3 4 5 6 7 8 9 10 3 3333 0 6667 2 6667 2 6667 0 6667 3 3333 Coefficients Estimate Std Error t value Pr gt t Intercept 9 3333 2 8441 3 282 0 030453 x 7 0000 0 7303 9 585 0 000662 Signif codes 0 0 001 0 01 0 05 0 1 1 Residual standard error 3 055 on 4 degrees of freedom Multiple R squared 0 9583 Adjusted R squared 0 9478 F statistic 91 88 on 1 and 4 DF p value 0 000662 gt par mfrow c 2 2 创建2乘2格局的图表 gt plot model 输出这个模型的诊断图 曼德博集合 编辑 通过对方程z z2 c的前20次迭代计算曼德博集合的简短R代码 它针对不同的复数常量c而绘图 这个例子展示了 Mandelbrot gif R语言用14行代码创建的图形 使用社区开发库 叫做包 这里是caTools包 处理复数 多维数值数组作为基本数据类型 用于变量C Z和X install packages caTools 安装外部包 library caTools 这个外部包提供write gif函数 jet colors lt colorRampPalette c green pink 007FFF cyan 7FFF7F white FF7F00 red 7F0000 dx lt 1500 定义宽度 dy lt 1400 定义高度 C lt complex real rep seq 2 2 1 0 length out dx each dy imag rep seq 1 2 1 2 length out dy dx C lt matrix C dy dx 重制形状为复数的方块矩阵 Z lt 0 初始化Z为零 X lt array 0 c dy dx 20 初始化输出3D数组 for k in 1 20 循环具有20次迭代 Z lt Z 2 C 中心差分方程 X k lt exp abs Z 捕获结果 write gif X Mandelbrot gif col jet colors delay 100 参考文献 编辑 1 0 1 1 Morandat Floreal 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 2021 07 18 ISBN 978 3 642 31057 7 doi 10 1007 978 3 642 31057 7 6 原始内容存档于2021 07 18 英语 White Homer Programming Paradigms Beginning Computer Science with R 2021 01 31 2021 07 18 原始内容存档于2021 07 18 美国英语 引文格式1维护 未识别语文类型 link 彼得 达尔高 R 4 2 2 is released 2022年10月31日 2022年11月2日 jmount Why I don t like Dynamic Typing Win Vector LLC 2012 02 25 2021 07 18 原始内容存档于2021 07 17 美国英语 R scripts mercury webster edu 2021 07 17 原始内容存档于2022 01 15 R Data Format Family rdata rda www loc gov 2017 06 09 2021 07 18 原始内容存档于2021 07 17 Introduction The Julia Manual 2018 08 05 原始内容存档于20 June 2018 8 0 8 1 8 2 8 3 8 4 8 5 8 6 R FAQ cran r project org 2021 07 18 原始内容存档于2011 07 09 Using the R programming language in Jupyter Notebook Anaconda documentation docs anaconda com 2021 12 29 原始内容存档于2022 04 26 index TIOBE The Software Quality Company www tiobe com 2021 07 18 原始内容存档于2018 02 25 Becker Richard A A Brief History of S 2022 01 03 原始内容存档于2022 01 03 R What is R www r project org 2021 07 18 原始内容存档于2011 07 19 John M Chambers S R and Data Science The R Journal 2020 11 1 462 476 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 英语 Academic unfazed by rock star status NZ Herald 2022 01 03 原始内容存档于2022 04 11 en NZ 引文格式1维护 未识别语文类型 link R Past and Future History A Free Software Project cran r project org 2022 01 03 原始内容存档于2017 07 11 Ross Ihaka The R Project A Brief History and Thoughts About the Future PDF Ross Ihaka 2022 01 03 原始内容 pdf 存档于2018 02 02 英语 ANNOUNCE CRAN stat ethz ch 2022 01 03 原始内容存档于2021 03 08 CRAN Mirrors cran r project org 2022 01 15 原始内容存档于2022 05 10 CRAN Contributed Packages cran r project org 2022 01 03 原始内容存档于2022 04 11 R Contributors www r project org 2022 01 03 原始内容存档于2022 04 23 Martin Machler Kurt Hornik R Foundation News PDF The R Journal 2014 6 2 190 191 2022 01 03 原始内容 PDF 存档于2022 01 20 23 0 23 1 Dalgaard Peter Basics Dalgaard Peter 编 Introductory Statistics with R Statistics and Computing New York NY Springer 2008 1 29 ISBN 978 0 387 79054 1 doi 10 1007 978 0 387 79054 1 1 英语 存档副本 2007 11 03 原始内容存档于2009 08 08 Han feng Chen Wai Mee Ching and Da Zheng A Comparison Study on Execution Performance of MATLAB and APL PDF McGill University March 9 2022 原始内容 PDF 存档于2022 03 03 英语 Data structures Advanced R adv r had co nz 2022 03 09 原始内容存档于2016 09 20 R What is R www r project org 2022 03 09 原始内容存档于2011 07 19 存档副本 2007 06 04 原始内容存档于2007 06 25 Gnumeric Team Gnumeric 1 4 is Here The GNOME Project 2004年12月19日 2006 04 30 原始内容存档于2006年10月5日 存档副本 2007 06 04 原始内容存档于2007 05 28 R Development Core Team Assignments with the Operator 2018 09 11 most used assignment operator in R is lt R Development Core Team Writing R Extensions 2018 09 11 we recommend the consistent use of the preferred assignment operator lt rather than for assignment Google s R Style Guide 2018 09 11 Wickham Hadley Style Guide 2018 09 11 Bengtsson Henrik R Coding Conventions RCC a draft January 2009 2018 09 11 Kabacoff Robert Quick R User Defined Functions statmethods net 2012 2018 09 28 外部链接 编辑维基共享资源中相关的多媒体资源 R语言R語言官方主頁 页面存档备份 存于互联网档案馆 参见 编辑 计算机程序设计主题 统计学主题 RStudio R语言的集成开发环境 IDE SPSS 另一種統計分析軟件 Stata 另一種統計分析軟件 SAS系統 另一種統計分析軟件 S PLUS 同樣建基於S語言的統計分析軟件 取自 https zh wikipedia org w index php title R语言 amp oldid 74494821, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。