《如何使用R软件》由会员分享,可在线阅读,更多相关《如何使用R软件(88页珍藏版)》请在金锄头文库上搜索。
1、 语言入门一一 R R 软件简介软件简介二二 数字、字符与向量数字、字符与向量三三 对象和它的模式与属性对象和它的模式与属性四四 因子因子五五 多维数组和矩阵多维数组和矩阵六六 列表与数据框列表与数据框七七 编写函数编写函数八八 R R 绘图绘图一 R 软 件 简 介R语言的由来oR语言是从S语言演变而来的。oS语言是二十世纪70年代诞生于贝尔实验室,由Rick Becker, John Chambers, Allan Wilks开发。o基于S语言开发的商业软件Splus,可以方便的编写函数、建立模型,具有良好的扩展性,取得了巨大成功。o1995年由新西兰Auckland大学统计系的Rober
2、t Gentleman和Ross Ihaka,编写了一种能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。R软件简介 R是开源软件,代码全部公开,对所有人免费。 R可在多种操作系统下运行,如Windows、Linux和UNIX等。 R需要输入命令,可以编写函数和脚本进行批处理运算,语法简单灵活。 目前在R网站上约有两千多个程序包,涵盖了基础统计学、社会学、经济学、生态学、地理学、医学统计学、生物信息学等诸多方面。下载和安装RThe Comprehensive R Archive Network简称CRAN,提供下载安装程序和相应软件包。R主页 http:/www
3、.r-project.org/ R软件首页 http:/www.r-project.org/ R登陆界面(Windows版)菜单栏菜单栏快捷按钮快捷按钮控制台控制台命令行命令行R Gui 的菜单介绍R程序包为什么要安装程序包?为什么要安装程序包?特定的分析功能,需要用相应的程序包实现。例如:系统发育分析,往往要用到ape程序包,群落生态学vegan包等等。程序包是什么?程序包是什么? R程序包是多个函数的集合,具有详细的说明和示例。Window下的R程序包是已经编译好的zip包。每个程序包包含R函数、数据、帮助文件、描述文件等。常用R程序包base- R 基础功能包stats- R统计学包nl
4、me- 线性及非线性混合效应模型Graphics- 绘图lattice- 栅格图ape- 系统发育与进化分析apTreeshape- 进化树分析seqinr- DNA序列分析ade4- 利用欧几里得方法进行生态学数据分析常用R程序包cluster- 聚类分析ecodist- 生态学数据相异性分析mefa- 生态学和生物地理学多元数据处理mgcv- 广义加性模型相关mvpart- 多变量分解nlme- 线性及非线性混合效应模型ouch- 系统发育比较BiodiversityR - 基于Rcmdr的生物多样性数据分析vegan- 植物与植物群落的排序,生物多样性计算 常用R程序包maptools-
5、 空间对象的读取和处理sp- 空间数据处理spatstat- 空间点格局分析,模型拟合与检验splancs- 空间与时空点格局分析picante- 群落系统发育多样性分析程序包使用在菜单栏程序包选择加载程序包或者在控制台中输入如下命令:library() #()内为程序包名称内为程序包名称调用程序包内的函数与R R内置的函数调用方法一样查看帮助文件如何知道stats程序包内部都有哪些函数?最常用的方法:1 菜单 帮助Html帮助2控制台中输入library(help=stats)查看帮助文件 1 help(t.test) 2 ?t.test 3 help.search(t.test) 4 ap
6、ropos(t.test) 5 RGuiHelpR函数帮助(文本) 二 数字、字符与向量赋值与注释在控制台中键入如下命令2+2a-2代替b-2c, , =, =, !=逻辑运算 与、或、非!, &, &, |, |向量的运算R的函数每一个函数执行特定的功能,后面紧跟括号,例如:求和 sum()绘图 plot()排序 sort() 除了基本的运算之外,R的函数又分为高级和低级函数,高级函数内部嵌套了复杂的低级函数,例如plot()是高级绘图函数,函数本身会根据数据的类型,经过程序内部的函数判别之后,绘制相应类型的图形,并有大量的参数可选择。部分函数计算计算log(x) log10(x) exp(
7、x) sin(x)cos(x) tan(x) 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)部分函数统计检验统计检验lm(y f+x)lm(y x1+x2+x3)binom.testfisher.testchisq.testglm(y x1+x2+x3, binomial). 缺失数据三 对象和它的模式与属性对象和它的模式与属性对象的类型数值型 Numeric 如 100, 0, -4.335字符型 Ch
8、aracter 如 “China”逻辑型 Logical 如TRUE, FALSE因子型 Factor 表示不同类别复数型 Complex 如:2 + 3i四种类型的向量字符型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)复数型 略对象的类型的判断对象类型判断mode()class()is.numeric() #返回值为TRUE或FALSEis.logical()is.
9、charactor()is.data.frame()对象的类型的判断对象类型转换as.numeric() #转换为数值型as.logical()as.charactor()as.matrix()as.dataframe()为对象起名 R是区分大小区分大小写的,A与a是不同的。 对象名不能用数字开头,但是数字可以放在中间或结尾。推荐用”.”作为间隔,例如 anova.result1。 举例:一个向量a,包含了四个元素, a sex=c(M,F,M,M,F) sexf=factor(sex);sexf1 M F M M FLevels: F M五 多维数组和矩阵多维数组和矩阵dim()和和matr
10、ix()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)为行或列添加名称:row.names()col.names()数组下标数组的运算+, -, *, /, 运算后给出数值结果数组的运算矩阵的运算矩阵的运算六 列表与数据框列表与数据框物种数科数属数海拔坡度类型样方140152260025山顶样方251122635030山坡样方346112039045山坡样方438122426020低地样方549102522033低地行名Row n
11、ames字符串列名 Column names每列可看做带名称的向量表1 数据表、数据框与向量字符串、因素每行作为一个观测列表的创建列表可以是不同类型甚至不同长度的向量(数值型,逻辑型,字符型等等)、数据框甚至是列表的组合。list()例如list(character,numeric,logical,matrix)数据框的创建data.frame() #生成数据框d - data.frame(character,numeric,logical)cbind() # 按列组合成数据框c.data list(1,matrix(2:9,nrow=2),估计估计,FALSE)-x;x11 12 ,1 ,2
12、 ,3 ,41, 2 4 6 82, 3 5 7 931 估计估计41 FALSE列表的创建 data.frame(x) X1 X1.1 X2 X3 X4 X.估计估计. X.FALSE.1 1 2 4 6 8 估计估计 FALSE2 1 3 5 7 9 估计估计 FALSE m-cbind(1, 1:3);m ,1 ,21, 1 12, 1 23, 1 3引用数据框中的元素d - data.frame(a1, a2)$ 引用d$a1, 方括号引用d,1; d5,a1 - c(5260, 5470, 5640, 6180, 6390)a2 - c(3910, 4220, 3885, 5160,
13、 5645)外部数据读取 最为常用的数据读取方式是用read.table() 函数或read.csv()函数读取外部txt或csv格式的文件。 txt文件,制表符间隔 csv文件,逗号间隔 一些R程序包(如foreign)也提供了直接读取Excel, SAS, dbf, Matlab, spss, systat, Minitab文件的函数。read.table()的使用例:test.data-read.table(D:/R/test2.txt,header=T)header=T表示将数据的第一行作为标题。read.table(file=file.choose(),header=T) 可以弹出对
14、话框,选择文件。实例:从数据输入到t检验编号123456身高 m1.751.801.651.901.741.91体重kg607257909572表2 六名患者的身高和体重现有6名患者的身高和体重,检验体重除以身高的平方是否等于22.5。第一种方式:从控制台输入数据数据量较少时可以从控制台直接输入:height-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)weight-c(60, 72, 57, 90, 95, 72)sq.height-height2ratio-weight/sq.heightt.test(ratio, mu=22.5) 第二种方式 从外部读取数据
15、数据量较大时用read.table函数从外部txt文件读取第1步 将Excel中的数据另存为.txt格式(制表符间隔)或.csv格式。第2步 用read.table()或read.csv()函数将数据读入R工作空间,并赋值给一个对象。 在Excel中将数据存为txt文件实例:t检验(续)一般从txt文档读取数据。每一行作为一个观测值。每一行的变量用制表符,空格或逗号间隔开。read.table(”位置位置”, header=T)read.csv(”位置位置”,header=T)#从外部读取数据data1-read.table(d:/t.test.data.txt,header=T)bmi- d
16、ata1$weight/data1$height2t.test(bmi, mu=22.5) #t检验七 编写函数编程基础 R可以灵活的编写程序,用户自己编写的程序可以直接调用。R语言编程时无需声明变量的类型,这与C,C+等语言不同。基本格式 function.name-function(x, y) 表达式 函数内部也可用#添加注释程序流程控制 ifif 表达式的写法if(条件) 表达式 if(条件) 表达式1 else 表达式2 举例:if(p=0.05) print(“p0.05!)循环 for, whilefor(变量 in 向量) 表达式 for(i in 1:10) print(i)w
17、hile(条件) 表达式 i - 1while(i10) print(i) i - i + 1 函数举例定义函数:rcal-function(x,y) z - x2 + y2; result-sqrt(z) ; result;调用函数:rcal(3,4)八 R 绘图 R绘制的图形R绘图功能 R具备卓越的绘图功能,通过参数设置对图形进行精确控制。绘制的图形能满足出版印刷的要求,可以输出JPEG、TIFF、EPS、emf、pdf、png等各种格式。 绘图是通过绘图函数结合相应的选项完成的。 绘图函数包括高水平绘图函数和低水平绘图函数。高水平绘图函数plot() 绘制散点图等多种图形hist() 直
18、方图boxplot() 箱线图stripchart() 点图barplot() 条形图dotplot() 点图piechart() 饼图interaction.plot() matplot() 散点图与箱线图举例低水平绘图函数lines() 添加线curve() 添加曲线abline() 添加给定斜率的线points() 添加点segments() 折线arrows() 箭头axis() 坐标轴box() 外框title() 标题text() 文字mtext() 图边文字 绘图参数参数用在函数内部,在没有设定值时使用默认值。font= 字体lty= 线类型lwd= 线宽度pch= 点的类型,x
19、lab= 横坐标ylab= 纵坐标xlim= 横坐标范围ylim= 纵坐标范围举例:绘图生成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) 绘图举例例:分步绘图x - runif(50,0,2);y x - runif(50,0,2);y-runif(50,0,2);z p
20、ar(mfrow=c(2,1) plot(x,y);plot(x,z)一页多图在原有图形上添加元素举例:举例:x - rnorm(100) # 生成随机数hist(x,freq=F) # 绘制直方图curve(dnorm(x),add=T) # 添加曲线h - hist(x, plot=F) # 绘制直方图ylim - range(0, h$density, dnorm(0) #设定纵轴的取值范围hist(x, freq=F, ylim=ylim) #绘制直方图curve(dnorm(x),add=T,col=red) #添加曲线在原有直方图上添加曲线总 结oR是开源的统计绘图软件,也是一种自
21、解释的语是开源的统计绘图软件,也是一种自解释的语言,有大量的程序包可以言,有大量的程序包可以利用。利用。oR中中的向量、列表、的向量、列表、数组、统计结果等都数组、统计结果等都是对象,是对象,可以方便的生成所需对象可以方便的生成所需对象,并进行筛选。,并进行筛选。oR脚本是输入的多个命令行。脚本是输入的多个命令行。oR具具有精确控制的绘图功能有精确控制的绘图功能,生,生成的图可以另存成的图可以另存为多种格式为多种格式。oR编写函数无编写函数无需声明变量的类型,能利用循环需声明变量的类型,能利用循环、条件语句,控制程序的流程。条件语句,控制程序的流程。R资源R主页: http:/www.r-project.orgCRAN 北京镜像(数学所)http:/ftp.ctex.org/mirrors/CRAN/群落生态学数据分析http:/ecology.msu.montana.edu/labdsv/R/labs/ Statistics with Rhttp:/zoonek2.free.fr/UNIX/48_R/all.html NCEAS提供的R资源http:/www.nceas.ucsb.edu/scicomp/RProgTutorialsLatest.html