R语言入门及绘图实例罗奇斌概要1.R语言的介绍2.R语言的程序包3.数据管理4.R语言绘图1.1什么是R语言?•R语言是主要用于统计分析、绘图的语言和操作环境。1.1R语言的历史R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。最初S语言的实现版本主要是S-PLUS。后来Auckland大学的RobertGentleman和RossIhaka及其他志愿人员开发了一个R系统。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。但是请不要忘了:R是免费的(Risfree)。1.2为什么选择R语言?•丰富的资源涵盖了多种行业数据分析中几乎所有的方法。•良好的扩展性十分方便得编写函数和程序包,跨平台,可以胜任复杂的数据分析、绘制精美的图形。•完备的帮助系统每个函数都有统一格式的帮助,运行实例。•GNU软件免费、软件本身及程序包的源代码公开。1.3R与其他统计软件比较•SAS:速度快,有大量统计分析模块,可扩展性稍差,昂贵。•SPSS:复杂的用户图形界面,简单易学,但编程十分困难。•Splus:运行S语言,具有复杂的界面,与R完全兼容,昂贵。……1.4R语言的缺点•用户需要对命令熟悉与代码打交道,需要记住常用命令。•占用内存所有的数据处理在内存中进行,不适于处理超大规模的数据。•运行速度稍慢即时编译,约相当于C语言的1/20。•相比点击鼠标进行操作,R仍能够大大提高效率。1.5R语言的下载和安装•R软件首页语言的下载和安装TheComprehensiveRArchiveNetwork简称CRAN,由世界几十个镜像网站组成网络,提供下载安装程序和相应软件包。各镜像更新频率一般为1-2天推荐镜像:中国的镜像:数学所即时更新的CRAN源语言的下载和安装•Windows下载和安装R–CRAN:RBinarieswindowsbase下载完成后,双击R-3.0.1-win.exe开始安装。一直点击下一步,各选项默认,语言建议选英文。1.5R语言的下载和安装•Mac下载和安装R–CRAN:RBinariesmacosx下载完成后,双击R-3.0.1.pkg开始安装。一直点击下一步,各选项默认,语言建议选英文。R登陆界面(Windows版)路径:开始所有程序R3.0.0菜单栏快捷按钮控制台光标:等待输入RGui的File菜单RGui的Edit菜单RGui的Packages菜单RGui的Help菜单概要1.R语言的介绍2.R语言的程序包3.数据管理4.R语言绘图2R语言的程序包程序包是什么?R程序包是多个函数的集合,具有详细的说明和示例。Window下的R程序包是经过编译的zip包。每个程序包包含R函数、数据、帮助文件、描述文件等。为什么要安装程序包?R程序包是R功能扩展,特定的分析功能,需要用相应的程序包实现。例如:系统发育分析,常用到ape程序包,群落生态学vegan包等。2.1常用R程序包(I)ade4利用欧几里得方法进行生态学数据分析adephylo系统进化数据挖掘与比较方法ape系统发育与进化分析apTreeshape进化树分析bootBootstrap检验cluster聚类分析ecodist生态学数据相异性分析FD功能多样性分析geiger物种形成速率与进化分析2.1常用R程序包(II)Graphics绘图lattice栅格图maptools空间对象的读取和处理mefa生态学和生物地理学多元数据处理mgcv广义加性模型相关mvpart多变量分解nlme线性及非线性混合效应模型ouch系统发育比较pgirmess生态学数据分析phangorn系统发育分析2.1常用R程序包(III)picante群落系统发育多样性分析raster栅格数据分析与处理seqinrDNA序列分析sp空间数据处理spatstat空间点格局分析,模型拟合与检验splancs空间与时空点格局分析statsR统计学包SDMTools物种分布模型工具vegan植物与植物群落的排序,生物多样性计算2.2程序包的分类介绍vegan包页面三种平台上的程序包2.3程序包的安装在CRAN提供了每个包的源代码和编译好的程序包以vegan包为例,CRAN提供了:Packagesource:vegan_2.0-7.tar.gzMacOSXbinary:vegan_2.0-7.tgzWindowsbinary:vegan_2.0-7.zipReferencemanual:vegan.pdfWindow下程序包为zip文件,安装时不要解压缩。Mac下程序包为tgz文件,安装时不要解压缩。2.3程序包的安装1用函数install.packages(),如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。例如:要安装vegan包,在控制台中输入install.packages(vegan)2安装本地zip包路径:Packagesinstallpackagesfromlocalfiles选择本地磁盘上存储zip包的文件夹。2.4程序包的使用程序包的中函数,都要先导入,再使用,因此导入程序包是第一步。在控制台中输入如下命令:library(vegan)library(ape)程序包内的函数的用法与R内置的基本函数用法一样。library(vegan)Thisisvegan2.0-72.5程序包的帮助文件vegan程序包内部都有哪些函数?分别有什么功能?查询程序包内容最常用的方法:1菜单帮助Html帮助2查看pdf帮助文档练习一安装R并导入程序包概要1.R语言的介绍2.R语言的程序包3.数据管理4.R语言绘图3.数据管理3.1R的函数3.2R的对象3.3数据操作3.1R的函数R是一种解释性语言,输入后可直接给出结果。功能靠函数实现。函数形式:函数(输入数据,参数=)如果没有指定,则参数的以默认值为准。例如:平均值mean(x,trim=0,na.rm=FALSE,...)线性模型lm(y~x,data=test)3.1R的函数每一个函数执行特定的功能,后面紧跟括号,例如:平均值mean()求和sum()绘图plot()排序sort()除了基本的运算之外,R的函数又分为”高级”和”低级”函数,高级函数可调用低级函数,这里的”高级”函数习惯上称为泛型函数。如plot()就是泛型函数,可以根据数据的类型,调用底层的函数,应用相应的方法绘制相应的图形。这就是面向对象编程的思想。3.1.1R有哪些函数?查询的方法:HelpHtmlhelppackageslog()log10()exp()sin()cos()tan()asin()acos()binom.test()fisher.test()chisq.test()glm(y~x1+x2+x3,binomial)friedman.test()mean()sd()var()….箱线图修饰前后(左:默认值,右:修改属性后)函数的调用方法,函数名()如plot(),lm(),并将对象放入括号中。3.1.2R函数调用及其选项3.1.2R函数调用及其选项箱线图绘制函数的调用boxplot(day~type,data=bac,col=red,xlab=Virus,ylab=days)day~type,以type为横轴,day为纵轴绘制箱线图。data=bac数据来源baccol=“red”箱线图为红色xlab=“Virus”横轴名称为Virusylab=“days”纵轴名称为days3.2R的对象R处理的所有数据、变量、函数和结果都以对象的形式保存。1.区分大小写,注意China和china的不同。2.不能用数字作为变量,对象也不能用数字开头,但是数字可以放在中间或结尾,如2result与result2,后者是合法的。3.建议不要用过短的名称。可以用”.”作为间隔,例如anova.result1。4.不要使用保留名:NA,NaN,pi,LETTERS,letters,month.abb,month.name3.2.1元素的类型对象是由各元素组成的。每个元素,都有自己的数据类型数值型Numeric如100,0,-4.335字符型Character如“China”逻辑型Logical如TRUE,FALSE因子型Factor表示不同类别复数型Complex如:2+3i3.2.2对象的类(class)向量(vector)一系列元素的组合。如c(1,2,3);c(a,a,b,b,c)因子(factor)因子是一个分类变量c(a,a,b,b,c)矩阵(matrix)二维的数据表,是数组的一个特例x-1:12;dim(x)-c(3,4)[,1][,2][,3][,4][1,]14710[2,]25811[3,]369123.2.2对象的类(class)数组(array)数组是k维的数据表(kin1:n,n为正整数)。向量(n=1)矩阵(n=2)高维数组(n=3)数据框(dataframe)是由一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。列表(list)列表可以包含任何类型的对象。可以包含向量、矩阵、高维数组,也可以包含列表3.2.3运算符数学运算运算后给出数值结果+,-,*,/,^(幂)比较运算运算后给出判别结果(TRUEFALSE),,=,=,==,!=逻辑运算与、或、非!,&,&&,|,||3.2.4数据表的行与列低地33220251049样方5低地20260241238样方4山坡45390201146样方3山坡30350261251样方2山顶25600221540样方1类型坡度海拔属数科数物种数行名Rownames字符串每列可看做带名称的向量表1数据表、数据框与向量字符串、因子每行作为一个Entry列名Columnnames3.2.5数据框的组成•每个数据表可以看作一个数据框(dataframe)。•每一列(column)作为一个向量(vector)。•由很多不同类型的向量组成,如字符型,因子型,数值型。•每一行(row)作为一个记录(entry)•如何生成数据框?•两种办法:•(1)从外部数据读取•(2)各类型因子组合成数据框3.3数据操作3.3.1数据读取3.3.2数据创建3.3.3数据判断和转换3.3.4数据引用3.3.5数据筛选和排序3.3.1数据读取最为常用的数据读取方式是用read.table()函数或read.csv()函数读取外部txt或csv格式的文件。txt文件,制表符间隔csv文件,逗号间隔一些R程序包(如foreign)也提供了直接读取Excel,SAS,dbf,Matlab,spss,systat,Minitab文件的函数。3.3.2数据创建有时需要对读入的数据进行操作,将某一向量转换成矩阵,如条件筛选,此时将遇到向量、矩阵和数据框的生成、条件筛选等。向量的创建四种类型的向量字符型character-c(China,Korea,Japan,UK,USA,France,India,Russia)数值型numeric-c(1,3,6,7,3,8,6,4)逻辑型logical-c(T,F,T,F,T,F,F,T)复数型略向量的创建生成向量的函数c(),rep(),seq(),”:”c(2,5,6,9)rep(2,times=4)seq(from=3,to=21,by=3)[1]36912151821“:”1:15[1]123456789101112131415通过与向量的组合,产生更为复杂的向量。rep(1:2,c(10,15))矩阵的创建生成矩阵的函数dim()和matrix()di