《R语言入门快速指导(共105张)课件.pptx》由会员分享,可在线阅读,更多相关《R语言入门快速指导(共105张)课件.pptx(105页珍藏版)》请在三一办公上搜索。
1、语言入门,第1页,共105页。,语言入门第1页,共105页。,报告内容,一 R简介二 函数与对象三 编写脚本四 R绘图五 编写函数六 数据保存,第2页,共105页。,报告内容一 R简介第2页,共105页。,一 R 简 介,第3页,共105页。,一 R 简 介第3页,共105页。,R语言的由来,R语言是从S语言演变而来的。S语言是二十世纪70年代诞生于贝尔实验室,由Rick Becker, John Chambers, Allan Wilks开发。基于S语言开发的商业软件Splus,可以方便的编写函数、建立模型,具有良好的扩展性,取得了巨大成功。1995年由新西兰Auckland大学统计系的Ro
2、bert Gentleman和Ross Ihaka,编写了一种能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。,第4页,共105页。,R语言的由来R语言是从S语言演变而来的。第4页,共105页。,R软件简介,R是开源软件,代码全部公开,对所有人免费。 R可在多种操作系统下运行,如Windows、MacOS、多种Linux和UNIX等。 R需要输入命令,可以编写函数和脚本进行批处理运算,语法简单灵活。 目前在R网站上约有2100个程序包,涵盖了基础统计学、社会学、经济学、生态学、地理学、医学统计学、生物信息学等诸多方面。,第5页,共105页。,R软件简介 R是开
3、源软件,代码全部公开,对所有人,下载和安装R,The Comprehensive R Archive Network简称CRAN,提供下载安装程序和相应软件包。R主页 Windows版本下载地址之一: 下载完成后,双击 开始安装。一直点击下一步,各选项默认。,第6页,共105页。,下载和安装RThe Comprehensive R Arch,图1 R软件首页,第7页,共105页。,图1 R软件首页 第7页,共105页。,图2 R登陆界面(Windows版)路径: 开始所有程序,菜单栏,快捷按钮,控制台,命令行,第8页,共105页。,图2 R登陆界面(Windows版)菜单栏快捷按钮控制台命,图
4、3 R Gui 的菜单介绍,第9页,共105页。,图3 R Gui 的菜单介绍第9页,共105页。,练习一:下载和安装R,下载并安装R软件了解R的菜单,第10页,共105页。,练习一:下载和安装R下载并安装R软件第10页,共105页。,R程序包,为什么要安装程序包?特定的分析功能,需要用相应的程序包实现。例如:系统发育分析,往往要用到ape程序包,群落生态学vegan包等等。程序包是什么? R程序包是多个函数的集合,具有详细的说明和示例。Window下的R程序包是已经编译好的zip包。每个程序包包含R函数、数据、帮助文件、描述文件等。,第11页,共105页。,R程序包为什么要安装程序包?第11
5、页,共105页。,常用R程序包,base- R 基础功能包stats- R统计学包nlme- 线性及非线性混合效应模型Graphics- 绘图lattice- 栅格图ape- 系统发育与进化分析apTreeshape- 进化树分析seqinr- DNA序列分析ade4- 利用欧几里得方法进行生态学数据分析,第12页,共105页。,常用R程序包base- R 基础功能,常用R程序包,cluster- 聚类分析ecodist- 生态学数据相异性分析mefa- 生态学和生物地理学多元数据处理mgcv- 广义加性模型相关mvpart- 多变量分解nlme- 线性及非线性混合效应模型ouch- 系统发育
6、比较BiodiversityR - 基于Rcmdr的生物多样性数据分析vegan- 植物与植物群落的排序,生物多样性计算,第13页,共105页。,常用R程序包cluster- 聚类分析第13页,共10,常用R程序包,maptools- 空间对象的读取和处理sp- 空间数据处理spatstat- 空间点格局分析,模型拟合与检验splancs- 空间与时空点格局分析picante- 群落系统发育多样性分析,第14页,共105页。,常用R程序包maptools- 空间对象的读取和处理第14,图4 CRAN Task Views: 对程序包的分类介绍,第15页,共105页。,图4 CRAN Task
7、Views: 对程序包的分类介绍第,图5 vegan包页面,第16页,共105页。,图5 vegan包页面第16页,共105页。,R程序包,在CRAN 提供了每个包的源代码和编译好的MacOS、Window下的程序包以vegan包为例,CRAN提供了:MacOS X binary: vegan_1.15-3.tgz 等Window平台下程序包为zip文件,安装时不要解压缩。,第17页,共105页。,R程序包在CRAN 提供了每个包的源代码和编译好的MacOS,axis(at=seq(0.选取vector1中的第10,15,20个元素 vector1c(10,15,20)a-c(10,15,21
8、,18)该向量为数值型,长度为4。第57页,共105页。Statistics with Rz3=z1+z2;library(vegan)第97页,共105页。dataframe()summary(ba.(据Paradis, 2005)if(条件) 表达式1 else 表达式2Venables, W.curve() 添加曲线R是一种解释性语言,不需要先编译成.列表(list) 列表可以包含任何类型的对象。将numeric转换为factor每一行的变量用制表符,空格或逗号间隔开。,R程序包安装,1 连网时,用函数install.packages(),选择镜像后,程序将自动下载并安装程序包。例如:
9、打开RGui,在控制台中输入 (“ape)2 安装本地zip包路径:Packagesinstall packages from local files选择光盘或者本地磁盘上存储zip包的文件夹。,第18页,共105页。,axis(at=seq(0.R程序包安装1 连网时,用函数i,程序包使用,在控制台中输入如下命令:library(vegan)library(ade4)调用程序包内的函数与R内置的函数调用方法一样library(vegan)Warning message:,第19页,共105页。,程序包使用在控制台中输入如下命令:第19页,共105页。,练习二 安装并导入程序包,安装程序包程序
10、包从本地zip文件安装程序包调用程序包library(vegan)library(ape),第20页,共105页。,练习二 安装并导入程序包安装程序包第20页,共105页。,查看帮助文件,如何知道ape程序包内部都有哪些函数?最常用的方法:1 菜单 帮助Html帮助2 查看pdf帮助文档(从程序包下载页面下载),第21页,共105页。,查看帮助文件如何知道ape程序包内部都有哪些函数?第21页,,查看帮助文件,1 help() 2 ? 3 () 4 apropos() 5 RGuiHelpHtml help 6 查看R包pdf手册,第22页,共105页。,查看帮助文件 1 help()第22页
11、,共1,帮助文件的内容,以lm函数为例:lm(stats) #函数名及所在包 Fitting Linear Models # 标题Description #函数描述Usage # 默认选项Arguments # 参数Details # 详情Author(s) # 作者References # 参考文献Examples # 举例,第23页,共105页。,帮助文件的内容以lm函数为例:第23页,共105页。,练习三 查看帮助文件,打开ape软件包的帮助文件library(ape)查找ape包中函数的帮助输入 将其中的Example文件粘贴到Console中,查看运行的结果。,第24页,共105页。
12、,练习三 查看帮助文件打开ape软件包的帮助文件第24页,共1,图形界面之一:R Commander,图6 R commander 界面 library(Rcmdr),界面操作代码,结果输出,第25页,共105页。,图形界面之一:R Commander图6 R comman,为什么要学习编程?,界面操作直观易学,但也存在一些不足: 操作的过程难以保存,数据处理不够灵活,在进行步骤繁多的数据处理工作时十分费时费力;在建立模型或自己编写函数时也会遇到困难。而这些困难可以通过编程解决。 学习R编程,首先要了解R的函数、对象及其操作。,第26页,共105页。,为什么要学习编程? 界面操作直观易学,但也
13、存在一些,二 R函数与对象,第27页,共105页。,二 R函数与对象第27页,共105页。,数据表的行与列,行名Row names字符串,列名 Column names,每列可看做带名称的向量,表1 数据表、数据框与向量,字符串、因素,每行作为一个Entry,第28页,共105页。,数据表的行与列物种数科数属数海拔坡度类型样方14015226,R的函数,R是一种解释性语言,不需要先编译成.exe文件,输入后可直接运行。函数形式function(对象,选项= )平均值 mean()线性回归 lm(yx, data=test)R处理的所有数据、变量、函数和结果都以对象的形式保存。,第29页,共10
14、5页。,R的函数R是一种解释性语言,不需要先编译成.exe文件,输入,R的函数,每一个函数执行特定的功能,后面紧跟括号,例如:平均值 mean()求和 sum()绘图 plot()排序 sort() 除了基本的运算之外,R的函数又分为高级和低级函数,高级函数内部嵌套了复杂的低级函数,例如plot()是高级绘图函数,函数本身会根据数据的类型,经过程序内部的函数判别之后,绘制相应类型的图形,并有大量的参数可选择。,第30页,共105页。,R的函数每一个函数执行特定的功能,后面紧跟括号,例如:第30,部分函数,计算log(x) log10(x) exp(x) sin(x)cos(x) tan(x)
15、asin(x)acos(x)min(x)max(x)range(x) length(x),统计检验mean(x)sd(x)var(x)median(x)quantile(x,p)cor(x,y)t.test()lm(y x)wilcox.test()kruskal.test(),统计检验lm(y f+x)lm(y x1+x2+x3)glm(y x1+x2+x3, binomial).,第31页,共105页。,部分函数计算统计检验统计检验第31页,共105页。,图7 箱线图修饰前后(左:默认值,右:修改属性后)boxplot(count spray, data = InsectSprays)bo
16、xplot(count spray, data = InsectSprays, col = red),R函数调用及其选项,第32页,共105页。,图7 箱线图修饰前后(左:默认值,右:修改属性后)R函数调用,R函数调用及其选项,函数的调用方法, 函数名+() 如 plot(), lm(),并将对象放入括号中,“=”表示设定参数。例如:boxplot(daytype, data=bac, col=“red“, xlab=“Virus”, ylab=“days”)daytype,以type为横轴,day为纵轴绘制箱线图。data=bac 数据来源baccol=“red” 箱线图为红色xlab=“V
17、irus” 横轴名称为Virusylab=“days” 纵轴名称为days,第33页,共105页。,R函数调用及其选项函数的调用方法, 函数名+() 如 plo,练习四:查询函数帮助,查看boxplot的帮助文件?boxplot查看最后的examples 将帮助文件中的内容粘贴到控制台中,运行并观看运行结果。boxplot(count spray, data = InsectSprays, col = lightgray)选项更改boxplot(count spray, data = InsectSprays, col = “red”, xlab=“spray”, ylab=“counts”)
18、,第34页,共105页。,练习四:查询函数帮助查看boxplot的帮助文件第34页,共,赋值与注释,在控制台中键入如下命令2+2a代替b-2c-a+bc#注释,赋值符号,第35页,共105页。,赋值与注释在控制台中键入如下命令赋值符号第35页,共105页,为对象起名,R是区分大小写的,A与a是不同的。 对象名不能用数字开头,但是数字可以放在中间或结尾。推荐用”.”作为间隔,例如 。 举例:一个向量a,包含了四个元素, a-c(10,15,21,18)该向量为数值型,长度为4。 保留名称(命名对象时不要与保留名称冲突):,第36页,共105页。,为对象起名 R是区分大小写的,A与a是不同的。第3
19、6页,,对象的类型,数值型 Numeric 如 字符型 Character 如 “China”逻辑型 Logical 如TRUE, FALSE因子型 Factor 表示不同类别复数型 Complex 如:2 + 3i,第37页,共105页。,对象的类型数值型 Numeric 如 第37页,共10,对象的类别,向量(vector) 一系列元素的组合。因子(factor) 因子是一个分类变量,如“a”,”a”,”a”,”a”,”b”,”b”,”b”,”c”,”c”数组(array) 数组是k维的数据表。 矩阵(matrix) 矩阵是数组的一个特例,维数k = 2。数据框(dataframe) 是由
20、一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。列表(list) 列表可以包含任何类型的对象。(据Paradis, 2005),第38页,共105页。,对象的类别向量(vector) 一系列元素的组合。第38页,,运算符,数学运算 运算后给出数值结果+, -, *, /, 比较运算 运算后给出判别结果(TRUE FALSE), =, =, !=逻辑运算 与、或、非!, &, &, |, |,第39页,共105页。,运算符数学运算 运算后给出数值结果第39页,共105页。,外部数据读取,最为常用的数据读取方式是用() 函数或()函数读取外部txt或csv格式的文件。 t
21、xt文件,制表符间隔 csv文件,逗号间隔 一些R程序包(如foreign)也提供了直接读取Excel, SAS, dbf, Matlab, spss, systat, Minitab文件的函数。,第40页,共105页。,外部数据读取 最为常用的数据读取方式是用() 函数或(),read.table()的使用,例:test.data-(D:/R/test2.txt,header=T)header=T表示将数据的第一行作为标题。(file=file.choose(),header=T) 可以弹出对话框,选择文件。,第41页,共105页。,read.table()的使用例:test.data-(,
22、实例:从数据输入到t检验,表2 六名患者的身高和体重,现有6名患者的身高和体重,检验体重除以身高的平方是否等于。,第42页,共105页。,实例:从数据输入到t检验编号123456身高 m1.751.,第一种方式:从控制台输入数据,数据量较少时可以从控制台直接输入:height-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)weight-c(60, 72, 57, 90, 95, 72)sq.height-height2(ratio, mu=22.5),第43页,共105页。,第一种方式:从控制台输入数据数据量较少时可以从控制台直接输入,第二种方式 从外部读取数据,数
23、据量较大时用函数从外部txt文件读取第1步 将Excel中的数据另存为.txt格式(制表符间隔)或.csv格式。第2步 用()或()函数将数据读入R工作空间,并赋值给一个对象。,第44页,共105页。,第二种方式 从外部读取数据数据量较大时用函数从外部txt文件,图8 在Excel中将数据存为txt文件,第45页,共105页。,图8 在Excel中将数据存为txt文件第45页,共105页,实例:t检验(续),一般从txt文档读取数据。每一行作为一个观测值。每一行的变量用制表符,空格或逗号间隔开。(”位置”, header=T)(”位置”,header=T)#从外部读取数据data1-T)bmi
24、- data1$weight/data1$height2(bmi, mu=22.5) #t检验,第46页,共105页。,实例:t检验(续)一般从txt文档读取数据。每一行作为一个观,练习五:数据读取和t检验,将表2中的数据录入Excel中,另存为文件。用函数读取该文件。对变量中的attachratio-weight/height2(ratio),第47页,共105页。,练习五:数据读取和t检验将表2中的数据录入Excel中,另存,实例:从数据输入到单因素方差分析,将三种不同菌型的伤寒病毒a,b,c分别接种于10,9,和11只小白鼠上,观察其存活天数,问三种菌型下小白鼠的平均存活天数是否有显著差
25、异。 a菌株:2, 4, 3, 2, 4, 7, 7, 2, 5, 4 b菌株:5, 6, 8, 5, 10, 7, 12, 6, 6 c菌株:7,11,6, 6, 7, 9, 5, 10, 6, 3, 10,第48页,共105页。,实例:从数据输入到单因素方差分析 将三种不同菌型的伤寒病,准备数据表,图9 数据表的准备day和type 各为一列,第49页,共105页。,准备数据表图9 数据表的准备第49页,共105页。,实例:方差分析(续),#数据读取,将中的内容保存到bac中, header=T表示保留标题行。bac- #将ba数据框中的type转换为因子(factor)bac$type-
26、(bac$type) ba.an-aov(lm(daytype, data=bac) summary(ba.an) boxplot(daytype,data=bac,col=red),第50页,共105页。,实例:方差分析(续)#数据读取,将中的内容保存到bac中,,图10 三种菌型对小白鼠影响的箱线图,第51页,共105页。,图10 三种菌型对小白鼠影响的箱线图第51页,共105页。,练习六: 方差分析和箱线图绘制,1 在excel中准备数据表2 用R读取数据表3 输入如下命令进行方差分析、绘制箱线图boxplot(daytype,data=bac,col=red) ba.an-aov(lm
27、(daytype,data=bac) summary(ba.an),第52页,共105页。,练习六: 方差分析和箱线图绘制1 在excel中准备数据表第,向量、矩阵和数据框的生成与条件筛选,有时需要对读入的数据进行操作,将某一向量转换成矩阵,如条件筛选,此时将遇到向量、矩阵和数据框的生成、条件筛选等。例如:提取前面群落数据表中,物种数30的行,提取其中的某一列,进行分析等。,第53页,共105页。,向量、矩阵和数据框的生成与条件筛选有时需要对读入的数据进行操,向量的创建,四种类型的向量字符型character-c(China, Korea, Japan, UK, USA, France, In
28、dia, Russia) 数值型numeric-c(1, 3, 6, 7, 3, 8, 6, 4)逻辑型logical-c(T, F, T, F, T, F, F, T)复数型 略,第54页,共105页。,向量的创建四种类型的向量第54页,共105页。,向量的创建,c(2,5,6,9) rep(2,times=4) seq(from=3, to=21, by=3 ) 1 3 6 9 12 15 18 21“:” 1:15 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15通过与向量的组合,产生更为复杂的向量。rep(1:2,c(10,15),第55页,共105页。,向量
29、的创建c(2,5,6,9) 第55页,共105页。,向量: 随机数的生成,runif(10, min = 0, max= 1) rnorm(10, mean = 0, sd = 1),第56页,共105页。,向量: 随机数的生成runif(10, min = 0, m,定义矩阵的维度,dim()和matrix()x - 1:12dim(x) - c(3,4) ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12matrix.x - matrix(1:12,nrow=3,byrow=T)t(x)#转置为行或列添加名称:()(),第57页,共105页。,定义矩阵
30、的维度dim()和matrix()第57页,共105,数据框的创建,cbind() # 按列组合成数据框country.data-cbind(character,numeric,logical)rbind() # 按行组合成数据框() #生成数据框d - (character,numeric,logical)head(d) #访问数据的前6行:,第58页,共105页。,数据框的创建cbind() # 按列组合成数据框第58页,共,列表的创建,列表可以是不同类型甚至不同长度的向量(数值型,逻辑型,字符型等等)、数据框甚至是列表的组合。list()例如list(character,numeric,
31、logical,matrix.x),第59页,共105页。,列表的创建列表可以是不同类型甚至不同长度的向量(数值型,逻辑,对象的类型的判断,对象类型判断mode()class()() #返回值为TRUE或FALSE()()(),第60页,共105页。,对象的类型的判断对象类型判断第60页,共105页。,对象的类型的判断,对象类型转换as.numeric() #转换为数值型as.logical()as.charactor()as.matrix()as.dataframe(),第61页,共105页。,对象的类型的判断对象类型转换第61页,共105页。,练习七:因子生成,将 100, 200, 40
32、0, 600, 800 输入R中,保存到numeric对象中 numeric-c(100, 200, 400, 600, 800)将numeric转换为factor factor.numeric-(numeric)查看的内容,第62页,共105页。,练习七:因子生成将 100, 200, 400, 600,,引用向量内的元素,intake.pre - c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770)intake.post - c(3910, 4220, 3885, 5160, 5645, 4680, 5265
33、, 5975, 6790, 6900, 7335)intake.pre5; intake.prec(3,5,7)v - c(3,5,7);intake.previntake.pre1:5; intake.pre-c(3,5,7),第63页,共105页。,引用向量内的元素intake.pre - c(5260,引用数据框中的元素,d - (intake.pre, intake.post)$ 引用d$, 方括号引用d,1; d5,第64页,共105页。,引用数据框中的元素d - (intake.pre, int,访问数据框内的元素,直接调用数据框内的列向量attatch()detatch()在函数
34、内部,对数据进行相应调整with()subset()within()transform(),第65页,共105页。,访问数据框内的元素直接调用数据框内的列向量第65页,共105,条件筛选,条件筛选是先对变量否满足条件进行判断,满足为TRUE,不满足为FALSE。之后再用逻辑值对向量内的元素进行筛选。intake.pre 70001 FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUEintake.preintake.pre 7000intake.postintake.pre 7000 & intake.pre 7000 &
35、intake.pre = 8000,第66页,共105页。,条件筛选条件筛选是先对变量否满足条件进行判断,满足为TRUE,练习八:条件筛选,创建一个2到50的向量 vector12, 4, 6, 8, ., 48, 50vector140,第67页,共105页。,练习八:条件筛选创建一个2到50的向量 vector1第67,排序,将向量中的元素按照一定顺序排列。 sort() 按数值大小排序举例: intake$post sort(intake$post) order() 给出从小到大的出现序号。 order(intake$post) o - order(intake$post),第68页,共
36、105页。,排序将向量中的元素按照一定顺序排列。第68页,共105页。,工作空间,ls() 列出工作空间中的对象rm() 删除工作空间中的对象rm(list=ls() 删除空间中所有对象() 保存工作镜像sink() 将运行结果保存到指定文件中getwd() 显示当前工作文件夹setwd() 设定工作文件夹,第69页,共105页。,工作空间ls() 列出工作空间中的对象第69页,共105页。,练习九:了解工作路径,1 查看当前R工作的空间目录getwd()2 将R工作的路径设置为 d:/data/setwd(“d:/data”),第70页,共105页。,练习九:了解工作路径1 查看当前R工作的
37、空间目录第70页,共,三 编写脚本,第71页,共105页。,三 编写脚本第71页,共105页。,编写脚本(Scripting),脚本是什么? 脚本是一系列命令。 可以先批量的编号程序,或者对别人已经编好的程序进行修改。之后输入到控制台进行调试,以满足数据分析的需求。语言高亮显示 在代码较多的情况下,有时需要对行数、函数、括号、函数选项等进行高亮显示,设置成不同的颜色,以减少错误。,第72页,共105页。,编写脚本(Scripting)脚本是什么?第72页,共105,图11 TinnR对R脚本的高亮显示,第73页,共105页。,图11 TinnR对R脚本的高亮显示第73页,共105页。,图12
38、NotePad+对R脚本的高亮显示,第74页,共105页。,图12 NotePad+对R脚本的高亮显示第74页,共10,编辑器,R自带的脚本编辑器 Editplus ( ) TinnR ( ) Ultraedit ( ) Emacs ( ) Notepad+ 与NpptoR组合( ) 记事本或写字板 等等,第75页,共105页。,编辑器 R自带的脚本编辑器第75页,共105页。,举例-回归分析脚本,对一批涂料进行研究,确定搅拌速度对杂质含量的影响,数据如下,试进行回归分析,表3 搅拌速度对涂料中杂质的影响,第76页,共105页。,举例-回归分析脚本转速rpm 2022,脚本举例,#将以下代码粘
39、贴到编辑器中,另存为文件。rate-c(20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42)impurity -c(8.4, 9.5, 11.8, 10.4, 13.3, 14.8, 13.2, 14.7, 16.4, 16.5, 18.9, 18.5)plot(impurityrate)reg-lm(impurityrate)abline(reg,col=red)summary(reg),第77页,共105页。,脚本举例#将以下代码粘贴到编辑器中,另存为文件。第77页,共,运行脚本,三种运行方式1 通过source()函数运行source(“d:/r
40、egression.r”)2 通过R脚本编辑器运行路径:RGuiFileOpen Script #Ctrl+R运行3 直接粘贴到R控制台ctrl+c, ctrl+v,第78页,共105页。,运行脚本三种运行方式第78页,共105页。,练习十:R脚本运行,将R命令粘贴到记事本中,另存为文件。分别通过三种方式运行R脚本。,第79页,共105页。,练习十:R脚本运行将R命令粘贴到记事本中,另存为文件。第79,四 R绘图,第80页,共105页。,四 R绘图第80页,共105页。,图13 R绘制的图形,第81页,共105页。,图13 R绘制的图形第81页,共105页。,R绘图功能,R具备卓越的绘图功能,
41、通过参数设置对图形进行精确控制。绘制的图形能满足出版印刷的要求,可以输出JPEG、TIFF、EPS、emf、pdf、png等各种格式。 绘图是通过绘图函数结合相应的选项完成的。 绘图函数包括高水平绘图函数和低水平绘图函数。,第82页,共105页。,R绘图功能 R具备卓越的绘图功能,通过参数设置对图形进行精,高水平绘图函数,lot() 绘制散点图等多种图形hist() 直方图boxplot() 箱线图stripchart() 点图barplot() 条形图dotplot() 点图piechart() 饼图() matplot(),第83页,共105页。,高水平绘图函数plot() 绘制散点图等多
42、种图形第83页,共,图14 散点图与箱线图举例,第84页,共105页。,图14 散点图与箱线图举例第84页,共105页。,低水平绘图函数,lines() 添加线curve() 添加曲线abline() 添加给定斜率的线points() 添加点segments() 折线arrows() 箭头axis() 坐标轴box() 外框title() 标题text() 文字mtext() 图边文字 ,第85页,共105页。,低水平绘图函数lines() 添加线第85页,共105页。,绘图参数,参数用在函数内部,在没有设定值时使用默认值。font= 字体lty= 线类型lwd= 线宽度pch= 点的类型,x
43、lab= 横坐标ylab= 纵坐标xlim= 横坐标范围ylim= 纵坐标范围,第86页,共105页。,绘图参数参数用在函数内部,在没有设定值时使用默认值。第86页,举例:绘图,生成0到2之间的50个随机数,分别命名为x,yx - runif(50,0,2)y - runif(50,0,2)绘图:将主标题命名为“散点图”, 横轴命名为”横坐标”, 纵轴命名为“纵坐标”plot(x, y, main=“散点图”, xlab=“横坐标”, ylab=“纵坐标)text(0.6,0.6,text at (0.6,0.6)abline(h=.6,v=.6),第87页,共105页。,举例:绘图生成0到2
44、之间的50个随机数,分别命名为x,y第8,图15 绘图举例,第88页,共105页。,图15 绘图举例第88页,共105页。,例:分步绘图,lot(x, y, type=n, xlab=, ylab=, axes=F) #打开绘图窗口,不绘制任何对象points(x,y) #添加坐标点axis(1) #添加横轴axis(at=seq(0.2,1.8,0.2), side=3) #添加纵轴box() #补齐散点图的边框title(main=Main title, sub=subtitle, xlab=x-label, ylab=y-label)#添加标题、副标题、横轴说明、纵轴说明,第89页,共1
45、05页。,例:分步绘图plot(x, y, type=n, xla,图16 分步绘图,A,B,C,D,E,F,第90页,共105页。,图16 分步绘图ABCDEF第90页,共105页。,一页多图,ar()par(mfrow=c(2,2).图17一页多图,第91页,共105页。,一页多图par()第91页,共105页。,在原有图形上添加元素,举例:x - rnorm(100) # 生成随机数hist(x,freq=F) # 绘制直方图curve(dnorm(x),add=T) # 添加曲线h - hist(x, plot=F) # 绘制直方图ylim - range(0, h$density,
46、dnorm(0) #设定纵轴的取值范围hist(x, freq=F, ylim=ylim) #绘制直方图curve(dnorm(x),add=T,col=red) #添加曲线,第92页,共105页。,在原有图形上添加元素举例:第92页,共105页。,图18 在原有直方图上添加曲线,第93页,共105页。,图18 在原有直方图上添加曲线第93页,共105页。,练习十一:绘图练习,练习1 将中的代码拷贝到R控制台中,查看R绘制的图形。练习2 对例进行回归分析,并绘制散点图,并为散点图添加回归直线。plot(impurityrate)reg-lm(impurityrate)abline(reg,co
47、l=red)summary(reg),第94页,共105页。,练习十一:绘图练习练习1 将中的代码拷贝到R控制台中,查看R,五 编写函数,第95页,共105页。,五 编写函数第95页,共105页。,编程基础,R可以灵活的编写程序,用户自己编写的程序可以直接调用。R语言编程时无需声明变量的类型,这与C,C+等语言不同。基本格式 function.name-function(x, y) 表达式 函数内部也可用#添加注释,第96页,共105页。,编程基础 R可以灵活的编写程序,用户自己编写的程序可以直,程序流程控制 if,if 表达式的写法if(条件) 表达式 if(条件) 表达式1 else 表达
48、式2 举例:if(p0.05!),第97页,共105页。,程序流程控制 ifif 表达式的写法第97页,共105页。,循环 for, while,for(变量 in 向量) 表达式 for(i in 1:10) print(i)while(条件) 表达式 i - 1while(i10) print(i) i - i + 1 ,第98页,共105页。,循环 for, whilefor(变量 in 向量) 表达式,函数举例,定义函数:rcal-function(x,y) z - x2 + y2; result-sqrt(z) ; result;调用函数:rcal(3,4),第99页,共105页。,
49、函数举例定义函数:第99页,共105页。,练习十二 编写函数,编写一个函数,给出两个数之后,直接给出这两个数的平方和。sqtest-function(x, y) z1=x2; z2=y2; z3=z1+z2; z3 ,第100页,共105页。,练习十二 编写函数编写一个函数,给出两个数之后,直接给出这两,六 数据的保存,第101页,共105页。,六 数据的保存第101页,共105页。,sink()unlink()若有LaTeX基础,可以用Sweave() 函数该函数能将脚本、程序说明和运算结果直接保存成.tex文件,用LaTeX编译成pdf文件。,数据保存,第102页,共105页。,sink(
50、)数据保存第102页,共105页。,总 结,R是开源的统计绘图软件,也是一种自解释的语言,有大量的程序包可以利用。R中的向量、列表、数组、统计结果等都是对象,可以方便的生成所需对象,并进行筛选。R脚本是输入的多个命令行。R具有精确控制的绘图功能,生成的图可以另存为多种格式。R编写函数无需声明变量的类型,能利用循环、条件语句,控制程序的流程。,第103页,共105页。,总 结R是开源的统计绘图软件,也是一种自解释的语言,有大量,推荐教材,Peter Dalgaard Introductory statistics with RCrawley Statistics an introduction