




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 R软件及编程应用软件及编程应用中南财经政法大学信息与安全工程学院刘树栋 第一讲:第一讲:R语言简介语言简介 一、一、R语言的由来语言的由来 二、二、R语言的特点语言的特点 三、三、R语言基础语言基础Excel绘图实例MATLAB绘图实例什么是什么是R?u R是一种统计绘图语言,也指实现该语言的软件从使用角度讲,R是一个有着统计分析能力及强大作图功能的软件,在GNU(自由软件许可协议)协议General Pubilc Licence 4 下免费发行。从编程角度讲,R语言是面向对象的统计编程语言,是由AT&T贝尔实验室所创立的S语言发展出来的一种方言。从计算角度讲,R是一种为统计计算和图形显示而
2、设计的语言及环境。从开发角度上讲,R是一组开源的数据操作,计算和图形显示的整合包有各种方式可以编程调用。从架构角度讲,R是为统计计算和图形展示而设计的一个系统,它包括一种编程语言、高级别的图形展示函数和其他语言的接口及调试工具。一、一、R语言的由来语言的由来R语言是由S统计绘图语言演变而来,可看做S语言的一种“方言”。S语言于上世纪70年代诞生于AT&T贝尔实验室,由Rick Becker, John Chambers, Allan Wilks开发。基于S语言开发的商业软件S-Plus,可以方便的编写函数,建立模型,具有良好的扩展性,在国外学术界应用广泛。基于S语言的源代码,在1995年新西兰
3、Aukland大学统计系的Robert Gentleman 和 Ross Ihaka 编写了一能够执行S语言的软件,并将其源代码全部公开,这就是R软件,其被命名为R语言。R 作为一个计划(project),目前由R核心开发小组(R Development Core Team,简记R DCT)维护,他们完全自愿工作,把全球优秀的统计应用软件打包提供给用户,用户可以通过R计划的网站()了解R的最新信息和使用说明,下载最新版本的R软件和基于R的应用统计软件包。R是一个完全开放(GPL)自由的统计编程软件。 多领域的统计资源:目前在R网站上约有3400个程
4、序包,涵盖了基础统计学、社会学、经济学、生态学、空间分析、系统发育分析、生物信息学等诸多领域。 跨平台:R可以运行在多种操作系统下,如Windows、MacOS、Linux和UNIX等。 命令行驱动:即时解释,输入命令,即可获得相应的结果。 GNU软件:免费、软件本身及程序包的源代码公开。 扩展性强:用户可以编制自己的函数来扩展现有的R语言(这就是为什么它在不断升级完善。) 另外:作图能力强、帮助系统完善、面向对象的统计编程等。二、二、R语言的特点语言的特点1 1、R R语言的优势语言的优势2 2、R R语言的语言的“开源开源”含义含义R的“开源”除了免费之外还有其他含义。R提供了所有的程序算
5、法和其他补充内容:l 可以修改程序错误,扩展程序功能。l 提供了和研究开发者的对话平台以利于扩展方法分析数据l 超过1K名顶级专家为R开发程序,理论和方法非常前沿l 遍布全世界的研究者而非仅仅是发达国家的研究者共同拥有开展研究所需的软件工具。l 提供开放和可用的工具鼓励进行重复研究和开发。l R软件包大多用R程序语言编写,学习和使用这些程序相对简单。 3 3、与其他统计软件的比较、与其他统计软件的比较SAS: 速度快,有大量统计分析模块,可扩展性差,昂贵。SPSS: 复杂的用户图形界面,简单易学,但编程十分困难。S-Plus: 运行S语言,具有复杂的界面,与R完全兼容,昂贵。从功能相似角度上讲
6、,R与Matlab比较接近。R虽然是免费的,但能力上不比任何同类型的商业软件差。R与商用统计软件(SAS/ SPSS)比较没有列完没有列完统计分析软件的热度http:/ 与代码打交道,需要记住常用命令。占用内存: 所有数据处理都在内存中进行,不适用于处理超大规模的 数据。运行速度慢: 即时编译,约相当于C语言的1/20。u但是相比于点击鼠标进行操作,R仍能够大大提高效率。5、R语言的能做的和不能做的语言的能做的和不能做的 数据管理和存储(数字型,文字型) 矩阵运算 稀疏表和正则表达式 高水平数据分析和统计函数 类(“OO”) 绘图 程序语言: 循环、分支,子模块 不是数据库大师可以使用SQL与
7、数据库连接 没有图形用户界面,但是可以使用第三方JAVA、TclTk开发界面 R语言是解释性的语言,但是可以使用和调用C/C+等代码 没有数据表浏览模块,但是可以连接Excel/MsOffice 没有专家/商用支持三、三、R语言基础语言基础1、获取和安装、获取和安装R软件软件2、R的用户界面的用户界面3 其他运行其他运行R的方式的方式4、简单示例、简单示例5、R语言基础语言基础6、R程序包程序包1、获取和安装、获取和安装R软件软件R软件首页:(1)访问R官方网站(http:/www. ),会看到“download”的链接1
8、、获取和安装、获取和安装R软件软件R软件下载镜像链接:/mirrors.html(2)点击上图中左边黑体“Download” 下面的“CRAN”或者右边“download R”下一行的“CRAN mirror”,都会进入镜像网站列表:https:/cran.r-project. org/ mirrors.html(3)选择下载镜像路径1、获取和安装、获取和安装R软件软件R软件下载链接:http:/ R for Windows”,进入下一个页面点击“base”1、获取和安装、获取和安装R软件软件 (6)点击“Download R 3.2.2 fo
9、r Windows(62 megabytes, 32/ 64bit)”,下载安装包u 双击.exe文件,一直默认安装即可。有多国语言选项,可根据个人习惯选择中文或者英文。1、获取和安装、获取和安装R软件软件2、R的用户界面的用户界面R GUI(graphic users interface)的主窗口,有三部分组成:主菜单、工具条、R console(R的运行窗口)。R console 用户的主要工作在这里发布命令来完成,包括数据集的建立、数据 分析、作图等 还可以得到在线帮助Help.start() HTML格式的关于R的帮助文件Help() 得到相应函数的帮助,例如help(plot)Dem
10、o() 得到R提供的几个示例u同MATLAB类似,用右shift键可以重现以前的命令菜单栏菜单栏快捷按钮快捷按钮控制台控制台命令行命令行菜单栏介绍菜单栏介绍工具条介绍工具条介绍Source R code Load image Save imageCopy and PasteStop current computationSource R code 执行R文件(*.R或*.r)Save image 保存工作区,文件名为*.RdataLoad image 打开已有的工作区Stop current computation 中止当前计算3、其他运行、其他运行R的方式的方式界面操作代码结果输出(1)R
11、Commander:是一个交互式菜单/对话框系统(menu/ dialog-box interfaces),用于进行数据的读、写、转换及常用的统计分析作者还添加了线性与广义线性模型等统计分析工具。(2)Rstudio:是一套免费、开源的R语言集成开发环境,与标准的R GUI不同,Rstudio将所有的窗口都捆绑在了屏幕上,通过标签页的方式进行展示。3、其他运行、其他运行R的方式的方式4、简单示例、简单示例 4.1 数值运算数值运算 4.2 赋值赋值 4.3 向量运算向量运算 4.4 作图作图4、简单示例、简单示例4.1 数值运算(数值运算(1) u 现象:在上述两个例子中,输出结果前面都有一个
12、“1”u注释: (1)在R中输入/输出的结果(数值、字符、特殊符号等)都被认为是向量。向量是一组有序元素的集合,“1”表示输出结果在这一行中出现的第一个元素的下标(或序号)。 (2)括号中的数字表示那一行第一个数字的在整个输出向量中的下标(或序号)。 例3、在R控制台中输入“1:50”,输出结果如下:u思考:与C语言中向量的标号制度是否一致?4.1 数值运算(数值运算(2)4、简单示例、简单示例4.2 赋值(赋值(1)l 为了避免在计算过程中多次重复输入,像其他语言语言,R也引如变量,用来表示数值的名称。 例4、给变量x赋值2,可以在R的控制台中输入“x - 2”u 注释 (1)字符“”和“-
13、”表示一个符号。箭头指向的是被赋值的变量。“-”表示赋值运算符,中间不能有空格。如果在“-”中间增加一个空格会将其含义改变为“小于”号后面跟着“负号”。u 注释 (2)R中变量的命名规则:a、变量名可以有字母、数字和点号构成。b、不能以数字为开头,数字后也不能跟点号。c、尽量避免以点号开头的变量名。一个典型的变量名可以是height.1yr,用来描述1岁儿童的身高。d、变量名区分大小写。例如WT和wt表示不同的变量名。e、避免已被系统使用的变量名,以免混淆。u 思考:R中变量命名规则是否与C语言中一致?4、简单示例、简单示例4.2 赋值(赋值(2)4、简单示例、简单示例4.3 向量运算(向量运
14、算(1)l (1)向量构造方法:统计数据的首要任务是把数据组合在一起,组合在一起的数据通常用向量来表示。在C语言中用数组来表示,在R语言中用向量表示。向量的构造方式之一如例5所示: 例5、在R控制台中输入:weight - c(60,72,57,90,95,72) 输出结果如下:weight 1 60 72 57 90 95 72u 注释(1)结构c()用来构造向量的,c是“concatenate(连接)缩写/合并(combine)”,含义是讲个分项首尾连接。(2)这既不是R中输入向量的唯一方法,也不是一般首选方法。后续中会介绍其他方法。l (2)相同长度向量的运算例6、一个人的体重指数(BM
15、I)定义为体重(kg)除以身高(m)的平方。沿用例5的中数据,表示6个人的体重。继续在R控制台中输入: height - c (1.75,1.80,1.65,1.90,1.74,1.91) bmi bmi 1 19.59184 22.22222 20.93664 24.93075 31.37799 19.73630u注释:该操作是把两个向量中相同序号的元素依次计算,从而得到上述结果。即:BMI的第一个元素是60/1.752,后续元素依次类推。u思考:在C语言中此计算如何进行?4.3 向量运算(向量运算(3)例7、在R控制台中输入:c(1,2,3,4)+c(10,20,30,40) 输出:1 1
16、1 22 33 44例8、在R控制台中输入:c(1,2,3,4)*c(10,20,30,40) 输出:1 10 40 90 160例9、在控制台中输入:c(1,2,3,4)-c(1,1,1,1) 输出:1 0 1 2 34.3 向量运算(向量运算(4)l (3)不相同长度向量的运算在R中不相同向量的运算也是可以的。事实上我们已经在例6中使用了此类运算:height2,2是1维的,在这种情况下,较短的向量被循环使用。此外如果较长的向量不是较短向量的倍数,将会出现警告。例10、在R控制台中输入: c(1,2,3,4)+1 输出:1 2 3 4 5u 与 c(1,2,3,4)+c(1,1,1,1)的
17、结果相同4.3 向量运算(向量运算(5)例11、在R控制台中输入: 1c(1,2,3,4,5) 输出:1 1.000 0.500 0.333 0.250 0.200例12、在R控制台中输入:c(1,2,3,4)*c(10,100) 输出:1 10 200 30 400例13、在控制台中输入:c(1,2,3,4,5)+c(10,100) 输出:1 11 102 13 104 15 warning message: In c(1,2,3,4,5)+c(10,100) : longer object length is not a multiple of shorter object length4
18、.3 向量运算(向量运算(6)4、简单示例、简单示例4.4 作图(作图(1)l R的另一项重要功能是绘图。例14、在R控制台中输入 plot(height,weight),其中height 和 weight 是例5和例6中定义的两个向量。执行后得到如下图4、简单示例、简单示例4.4 作图(作图(2)例15、使用关键字pch(绘图符号)改变绘图符号。在R控制台中输入 plot(height, weight,pch=2)。执行后得到如下图,把原图中圆点改成了三角符号。u对比:MATLAB中用plot绘图方式及符号的更改方式?4、简单示例、简单示例4.4 作图(作图(3)例16、用函数lines,在
19、原图中添加一条直线。在R控制台中输入 hh lines(hh,22.5*hh2)执行结果右图。u例15和例16的执行结果可以直接在例14的基础上进行修改,无需其他操作。这与MATLAB有区别5、R语言基础语言基础 5.1 表达式和对象表达式和对象 5.2 函数和参数函数和参数 5.3 向量向量 5.4 引用和转义序列引用和转义序列 5.5 缺失值缺失值 5.6 生成向量的函数生成向量的函数 5.7 矩阵和数组矩阵和数组 5.8 因子因子 5.9 列表列表 5.10 数据框数据框 5.11 索引索引 5.12 条件选择条件选择 5.13 数据框的索引数据框的索引 5.14 分组数据和数据框分组数
20、据和数据框 5.15 隐式循环隐式循环 5.16 排序排序5.1 表达式和对象表达式和对象 (1)表达式l R的一个基本交互模式是表达式求解。l 所有的R表达式都会返回一个值(可能是NULL),虽然有时候它是不可见的,而且不被输出。l 表达式通常包含变量引用、运算符、函数调用,以及其他对象。 (2)对象l 表达式作用于对象。l 对象是一个抽象的术语,可以指任何能够给变量赋值的事物。 例如:向量 5.2 函数和参数(函数和参数(1) (1)函数l 在R中,完成所有工作的操作都成为函数(function)。l 函数的一般形式: f(argument1,argument2,) 其中f为函数名,arg
21、ument1,argument2是该函数的参数(称为形参,函数的形参是函数定义的一部分,函数的形式参数可以通过如下方式看到,例17)。函数调用时被赋值的参数称为实参,例如例14中plot(height,weight)中的height和weight就是实参。 例17查看函数具体定义:在控制台中输入: args(plot.default) 输出如下图:u 注:大部分参数都有默认值,在函数调用时如果没有把这些参数重新赋值,系统则按默认值处理。u三联点()意味着还可以有未指定名称和数字的其他参数5.2 函数和参数(函数和参数(2)5.2 函数和参数(函数和参数(3) (2)参数的赋值:主要针对不止一个
22、参数的函数l 可以通过参数名来为其赋值:plot(x=height,y=weight),或plot(y=weight,x=height),效果是一样的。l 如果按照默认顺序传入参数,可以省略参数的名称:例如plot (height,weight),plot(weight, height),但二者的效果就不一样了。u 注:并非所有的函数都是f()形式。有些函数是操作符的形式,例如加法(“+”),乘法(“*”)。 5.3 向量向量 向量的类型:数值向量,字符向量和逻辑向量l 数值向量:前面我们已经涉及,此处不再讨论l 字符向量:是由一组字符串组成的向量,它的元素用引号来指定和输出。单引号和双引号都
23、可以,只要保持引号两端一致即可。(在C语言中,单、双引号是由区别的!) 例18、在控制台中输入: c(“Huey”, “Dewey”, “Louie”) 输出:1 “Huey”, “Dewey”, “Louie”l 逻辑向量:是由TRUE(真)、FALSE(假)或NA(缺失值)元素组成的向量。 例19、在R控制台中输入: c(T,T,F,T) 输出:1 TRUE TRUE FALSE TRUE 5.4 引用和转义序列(引用和转义序列(1) 在R中,如果要输入一个字符向量,通常引号被加到每一个元素上,例18中,输出结果中每一个字符串都有引号。 在实际应用中,给定一个字符串“Huey”,它是一个4
24、个字符的字符串,不是6个,引号不是字符串的一部分,它们的出现只是系统告诉用户字符串和变量名称的区别 为了避免输出字符向量所带的引号,R引入cat函数: 例如: cat(c(“Huey”, “Dewey”, “Louie”) Huey Dewey Louie 输出一个不带引号的字符串,而仅仅用空格字符分隔,字符串后也没有换行符,所以下一行输入的提示符()直接跟在这一行的末尾。5.4 引用和转义序列(引用和转义序列(2) 为了把系统中提示符转到下一行,需要用一个换行符。 cat(c(“Huey”, “Dewey”, “Louie”, “/n”) Huey Dewey Louie u 注:反斜杠()
25、称为转移字符,n表示换行。u 可以用”方式插入引用字符。 例: cat(“What is ”R”?n”) What is “R”?5.5 缺失值缺失值 缺失值:为了解决实际数据分析中出现的数据点缺失问题,R中设置了缺失值(NA)来处理此问题。l 这个值在计算中可以被执行。l 对NA的操作也产生NA作为结果。例 20、在控制台中输入: x - c(1,2,3,NA) y x y c(x,y,5) 输出: 1 1 2 3 4 10 100 5 5.6 生成向量的函数(生成向量的函数(2)l (3)连接不同类型的向量,它们将被转化为最少“限制”的类型,例如: 输入: c(FALSE, 3) 输出:
26、1 0 3 输入: c(pi, “abc”) 输出: 1 “3.1415926” “abc” 输入: c(FALSE, “abc”) 输出: 1 “FALSE” “abc”也就是说,逻辑值被转换成了0/1,或“FALSE /TRUE”,数字转换为它们的输出形式的字符串5.6 生成向量的函数(生成向量的函数(3) seq()函数: 其中seq是“sequence”的简写,用来创建等差数值序列。此函数的具体定义如下: 可以形式化写成:seq(FROM, TO, BY)其中,FROM表示要生成序列的首元素,TO表示要生成序列的末元素,BY表示前后两个元素之间的等差值。例 seq(4,9),seq(4
27、,10,2). 5.6 生成向量的函数(生成向量的函数(4) rep()函数: 其中rep是“replicate”的简写,用来产生重复值。使用时有两个参数,依赖于第二个参数是一个向量还是一个数字,产生的结果会不同: 例如 输入:opps rep(oops,3) 输出:1 7 9 13 7 9 13 7 9 13 输入:rep(oops, 1:3) 输出:1 7 9 9 13 13 13 u rep(1:2, c(10,15) 输出结果是多少? 5.7 矩阵和数组(矩阵和数组(1) 在R中,矩阵的元素可以是任意类型(数值、字符串等)。 矩阵和数组被表达成带维数的向量。例21、输入:x dim(x
28、) x 输出:5.7 矩阵和数组(矩阵和数组(2)u 注释(1)dim函数设置或者更改x的维度,使R将一个12个数字的向量作为一个3*4的矩阵处理。u 注释(2)R中矩阵的存储是以列为主的,即第二列元素跟在第一列元素的后面,以此类推。 创建矩阵的一个方便方法是使用matrix函数: 这里byrow=T将矩阵改变成以按行而不是按列形式填充5.7 矩阵和数组(矩阵和数组(3) 对矩阵操作的有用函数有rownames、colnames和转置函数t,转置函数对矩阵进行转置计算。u 通过rownames函数把矩阵x原行 名1,、2,、3,重新命名为A、 B、Cu 特征向量LETTERS是一个包含大写字母
29、A-Z的内置变量。u 转换函数t(x)把矩阵x的行、列互换。5.7 矩阵和数组(矩阵和数组(4) 可以按行或按列分别使用cbind和rbind函数把向量“粘”在一起6、R程序包(程序包(package) 6.1 R程序包是什么程序包是什么 6.2 为什么要安装程序包为什么要安装程序包 6.3 程序包的安装程序包的安装 6.4 程序包的使用程序包的使用 6.5 帮助文件帮助文件6.1 R程序包是什么程序包是什么u R包(package)是由一系列函数、帮助文件和数据文件组成的文件束。其相当于perl语言中的模块、C/C+语言中的库或者java语言中的类。u R中提供了各式各样的包:绘图类包、统计
30、检验包、机器学习相关技术包、微阵分析数据包、信用风险建模包等等。u 通常一个包中所有的函数都是相关的。u 除了R软件自带包之外,使用包之前需要加载包。6.2 什么要安装程序包什么要安装程序包u R程序包是R功能的扩展,特定的分析功能,需要用相应的程序包实现。u 例如:系统发育分析,常用到ape程序包、群落生态学vegan包等常用常用R程序包程序包(I)ade4利用欧几里得方法进行生态学数据分析adephylo系统进化数据挖掘与比较方法ape系统发育与进化分析apTreeshape进化树分析bootBootstrap检验cluster聚类分析ecodist生态学数据相异性分析FD功能多样性分析g
31、eiger物种形成速率与进化分析常用常用R程序包程序包(II)Graphics绘图lattice栅格图maptools空间对象的读取和处理mefa生态学和生物地理学多元数据处理mgcv广义加性模型相关mvpart多变量分解nlme线性及非线性混合效应模型ouch系统发育比较pgirmess生态学数据分析phangorn系统发育分析常用常用R程序包程序包(III)picante群落系统发育多样性分析raster栅格数据分析与处理seqinrDNA序列分析sp空间数据处理spatstat空间点格局分析,模型拟合与检验splancs空间与时空点格局分析statsR统计学包SDMTools物种分布模型
32、工具vegan植物与植物群落的排序,生物多样性计算 CRAN Task Views: 对程序包的分类介绍对程序包的分类介绍CRAN Task Views6.3 程序包的安装(程序包的安装(1)u 首先查看所有已安装的R包的清单,可以采用pachages(all. available=T)或library()命令查看。6.3 程序包的安装(程序包的安装(2)u 若需要的安装包不在查看列表中,就需要对指定程序包进行安装。(也可以用library(ISwR)查看)u 方法一、用函数install.packeges():如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序会自动下载并安装程序包。 例如,要安装ISwR包,在控制台中输入install.packeges (ISwR)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 可行性研究报告合作
- 农业项目可行性研究报告怎样写
- 太阳能光伏并网发电厂家
- 教育行业学生评估与反馈预案
- 汽车行业智能汽车研发与制造流程优化方案
- 跨境电商系统建设
- 物流项目报告
- 交通卡口监控系统维护方案
- 旅游酒店行业的智能化客房服务系统开发方案
- 三农特色种植技术手册
- GB/T 16422.2-2022塑料实验室光源暴露试验方法第2部分:氙弧灯
- 大客户销售培训
- 生物化学与分子生物学实验(终版)
- 细胞内蛋白质的分选和运输细胞生物学-1
- 高血压健康宣教-饮食课件
- 八年级-现在完成时复习(共26张)课件
- 电气基础知识培训要点课件
- 基坑工程施工验收记录表
- GB∕T 37045-2018 信息技术 生物特征识别 指纹处理芯片技术要求
- 沥青项目运营方案参考范文
- 商品混凝土项目园区审批申请报告(范文参考)
评论
0/150
提交评论