R语言软件入门指导解析课件_第1页
R语言软件入门指导解析课件_第2页
R语言软件入门指导解析课件_第3页
R语言软件入门指导解析课件_第4页
R语言软件入门指导解析课件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1简介及基本指令2012年4月25日第1页,共84页。2报告内容一 R简介二 对象、函数和软件包三 R基本指令四 简单编程第2页,共84页。3一 R 简介第3页,共84页。4什么是R?图1 R首页的图形R是一种统计绘图语言,也指实现该语言的软件。The R Project for Statistical Computing 第4页,共84页。R 的起源1995年由新西兰Auckland大学统计系的Robert Gentleman和Ross Ihaka,基于S语言的源代码,编写了一能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。Robert GentlemanR

2、oss Ihaka自1997年以后,有一个核心团队,这一团队能对 R 的源代码进行修改。第5页,共84页。6R的优点丰富的资源 涵盖了多种行业数据分析中几乎所有的方法。良好的扩展性 十分方便得编写函数和程序包,跨平台,可以胜任复杂的数据分析、绘制精美的图形。完备的帮助系统 每个函数都有统一格式的帮助,运行实例。Free第6页,共84页。7R的缺点用户需要对命令熟悉 与代码打交道,需要记住常用命令。帮助系统均为英文占用内存 所有的数据处理在内存中进行,不适于处理超大规模的数据。运行速度稍慢 即时编译,约相当于C语言的1/20。第7页,共84页。8图2 R软件首页 / 第8页,共84页。9CRAN

3、The Comprehensive R Archive Network简称CRAN,由世界几十个镜像网站组成网络,提供下载安装程序和相应软件包。各镜像更新频率一般为1-2天推荐镜像:中国的镜像:数学所/mirrors/CRAN/及时更新的CRAN源/第9页,共84页。10Windows下载和安装RCRAN: BinariesWindowsbase 下载完成后,双击R-2.11.0-win32.exe 开始安装。一直点击下一步,各选项默认,语言建议选英文。图3 R2.11.0下载页面第10页,共84页。R 的Windows图形用户界面 (RGUI)菜 单按钮命令行绘 图 区第11页,共84页。R

4、 管理的几个概念使用期 (Session): 启动R系统到结束R系统之间的时间段对 象 (Object): 由R产生或处理的实体,包括变量、向量、矩阵、组合、函数等历 史 (Histroy): R使用期间所应用的历史记录(XXX.Rhistroy)工作空间 (Workspace): 当前被存储对象的集合(XXX.Rdata)不但对象而且包含了对象的系统环境;当一次使用完毕要关闭R时,R会询问是否保存工作空间软件包 (Package): 执行一定功能的函数、数据等的集合,一些内置于R系统内,大部分外置于网络第12页,共84页。R代码管理R 文件(对象)管理工作空间载入和存储历史记录管理路径管理文

5、件管理第13页,共84页。R 文件(对象)管理工作路径: getwd() setwd(“aa:/bb/”)导入 R code: source(“aa:/bb/XXX.r or XXX.txt”) 如果已设定是工作路径则source(“XXX.r or XXX.txt”) 存储工作空间: save.image(“XXX.Rdata”); 导入工作空间 load(“XXX.Rdata”), 或者直接双击XXX.Rdata打开R界面,此时工作空间自动导入,工作路径默认为XXX.Rdata存储时的工作路径存储、导入命令行历史记 savehistory(file=“XXX.Rhistory”) load

6、history(file=“XXX.Rhistory”)第14页,共84页。R 界面调整第15页,共84页。R 工作空间内对象和软件包显示显示工作空间中的对象删除工作空间中的所有对象显示置入R工作空间的所有 Packagels()rm(list=ls()search()第16页,共84页。R 的 Package 管理将 R 的library的package载入R工作空间library(“packagename”)从网络将外置的package载入R 的library从计算机硬盘其它文件夹的package载入R 的library第17页,共84页。18二 对象、函数和程序包第18页,共84页。对

7、象 (Object): 由R产生或处理的实体,包括变量、向量、矩阵、组合等函 数 (Function): 执行R 任务的一个完整的程序。程序包(Package): 执行一定功能的函数的集合,一些内置于R系统内,大部分外置于网络第19页,共84页。20对象赋值与注释在控制台中键入如下命令2 + 2a - 2代替b - 2c install packages from local files选择本地磁盘上存储zip包的文件夹。2 用函数 install.packages()如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。例如: 要安装vegan包,在控

8、制台中输入 install.packages(vegan)第35页,共84页。36程序包使用程序包的中函数,都要先导入,再使用,因此导入程序包是第一步。在控制台中输入如下命令:library(vegan)程序包内的函数的用法与R内置的基本函数用法一样。library(vegan)This is vegan 1.17-2第36页,共84页。37查看程序包帮助文件vegan 程序包内部都有哪些函数?分别有什么功能?查询程序包内容最常用的方法:1 菜单 帮助Html帮助2 查看pdf帮助文档3 引用 citation(package = vegan)第37页,共84页。38常用R程序包(I)ade4

9、利用欧几里得方法进行生态学数据分析adephylo系统进化数据挖掘与比较方法ape系统发育与进化分析apTreeshape进化树分析bootBootstrap检验cluster聚类分析ecodist生态学数据相异性分析FD功能多样性分析geiger物种形成速率与进化分析第38页,共84页。39常用R程序包(II)Graphics绘图lattice栅格图maptools空间对象的读取和处理mefa生态学和生物地理学多元数据处理mgcv广义加性模型相关mvpart多变量分解nlme线性及非线性混合效应模型ouch系统发育比较pgirmess生态学数据分析phangorn系统发育分析第39页,共84

10、页。40常用R程序包(III)picante群落系统发育多样性分析raster栅格数据分析与处理seqinrDNA序列分析sp空间数据处理spatstat空间点格局分析,模型拟合与检验splancs空间与时空点格局分析statsR统计学包SDMTools物种分布模型工具vegan植物与植物群落的排序,生物多样性计算第40页,共84页。41图 9 CRAN Task Views: 对程序包的分类介绍/web/views/CRAN Task Views第41页,共84页。42R图形界面:R commanderR commander是R的图形界面之一,是John Fox教授编写的,适用于不希望R编程

11、的用户。随着用户的操作,其窗口还可以显示出相应操作的R程序,对于初学者可能会有帮助,但不推荐使用!安装R commanderinstall.packages(Rcmdr)R将自动下载并安装Rcmdr所需的所有程序包第42页,共84页。43图形界面之一:R Commander图 12 R commander 界面 library(Rcmdr) 界面操作代码结果输出第43页,共84页。44三 R基本指令第44页,共84页。45数据读取 最为常用的数据读取方式是用read.table() 函数或read.csv()函数读取外部txt或csv格式的文件。 txt文件,制表符间隔 read.table(

12、“*.txt”,head=T) csv文件,逗号间隔 read.csv(“*.csv”,head=T)read.table(file=file.choose(),header=T)read.csv(file=file.choose(),header=T)read.table(clipboard)可以弹出对话框,选择文件。 一些R程序包(如foreign)也提供了直接读取Excel, SAS, dbf, Matlab, spss, systat, Minitab文件的函数。第45页,共84页。46 数据保存write.table(x,file=“*.txt”)write.csv(x,file=“

13、*.csv”)sink(“*.txt”) sink() #sink开头,sink()结束save.image(file=test.RData)edit(x)fix(x)第46页,共84页。47运算符数学运算 运算后给出数值结果+, -, *, /, #不仅是运算符,也是函数,(x,1/3)比较运算 运算后给出判别结果(TRUE FALSE), , =, =, !=三角函数 sin,cos,tan,asin,acos,atan对数 log,exp,log10,log(x,base) abs()#绝对值组合数 choose(4,2) 组合combn(1:4,2)排列P(m,n)= factoria

14、l(m)/factorial(m-n) 第47页,共84页。48向量的创建生成向量的函数 c(),rep(),seq(),”:”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 (15:1) 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15通过与向量的组合,产生更为复杂的向量。rep(1:2,c(10,15)第48页,共84页。49向量运算指令最大值 max(x) 最小值 min(x) 中值 median(x) 分位数 quantile(x,probs=0.2

15、5)平均值 mean(x) 范围 range(x) 和 sum(x) 差分diff(x) 连乘 prod(x)weighted.mean(x,w)加权平均,rank(x)秩, var(x)方差 sd(x)标准差 length(x)长度summary(x) which.min(x) which.max(x) 第49页,共84页。50向量运算指令rev(x) #倒置sort(x) #升序rev(sort(x) #降序unique(x) #去掉重复元素sample(x,n) #从向量内随机抽取n个,不放回sample(x,n,replace=T) #放回随机抽样scale(x,scale=F,cen

16、ter=F)#标准化,默认是Tappend(x, values, after = length(x) # 往向量内插值table(x) #频率分布表match(x,y) #返回x长度的向量,y等取,不等NAcor(x,y)相关系数第50页,共84页。51向量内的元素引用x - c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770)x5; #引用第5个元素xc(3,5,7) #引用第3,5,7个元素v 6000 #大于6000的元素xx6000&x8000#大于6000的元素且小于8000的元素第51页,共84页。5

17、2矩阵的创建生成矩阵的函数 dim()和matrix()dim() 定义矩阵的行列数,例如: x - 1:12 dim(x) - c(3,4) ,1 ,2 ,3 ,4 1, 1 4 7 10 2, 2 5 8 11 3, 3 6 9 12x - matrix(1:12,nrow=3,byrow=T)rownames(x)=c(“row1”,“row1”,“row1”)colnames(x)=paste(col, 1:4, sep = )第52页,共84页。53矩阵的运算dim(x) # 矩阵的维数t(x) #转置矩阵rowsum(x) #行的和rowMeans(x)#行的平均值colsum(x

18、) #列的和colMeans(x)#行的平均值xi,j #第i行,第j个元素xi,x,j,x1:5,2:4x$colname #引用列,后面为列的名称第53页,共84页。54矩阵的运算cbind () # 相同行数的矩阵组合rbind() # 相同列数的矩阵组合head() #默认访问矩阵的前6行tail()#默认访问矩阵的最后6行attach() #直接调用数据框内的列,以列的名称作为向量的名称detach()subset() #条件调用subset (iris, select= c(Sepal.Length, Petal.Length), Species = setosa)xorder(x

19、,1), #矩阵排序第54页,共84页。55数据表的行与列低地33220251049样方5低地20260241238样方4山坡45390201146样方3山坡30350261251样方2山顶25600221540样方1类型坡度海拔属数科数物种数行名Row names字符串列名 Column names每列可看做带名称的向量表1 数据表、数据框与向量字符串、因子每行作为一个Entry第55页,共84页。56数据框的创建创建数据框的函数:data.frame(x,y,z), as.data.frame(x,rownames=NUll) cbind() rbind()edit()和fix() #修改

20、数据矿矩阵的命令基本上也适用于数据框第56页,共84页。57曲线积分integrate(dnorm,-1.96,1.96)integrand = function(x) 1/(x+1)* sqrt(x)integrate(integrand, lower = 0, upper=Inf )求(偏)导数?integrand = expression(1/(x+1)* sqrt(x)D(integrand,x)第57页,共84页。58类的判断对象类型判断mode() 判断存储的类型class() 判断数据的类is.numeric() #返回值为TRUE或FALSEis.logical() #是否为逻

21、辑值is.charactor() #是否为字符串is.null() #是否为空is.na() #是否为na第58页,共84页。59类的转换as.numeric() #转换为数值型as.logical() #转换为逻辑型as.charactor() #转换为字符串as.matrix() #转换为矩阵as.data.frame() #转换为数据框as.factor() #转换为因子第59页,共84页。60简单绘图函数plot(x) 绘制散点图等多种图形,根据数据的类,调用相应的函数绘图hist() 频率直方图boxplot() 箱线图stripchart() 点图barplot() 柱状图dotp

22、lot() 点图piechart() 饼图matplot()数学图形第60页,共84页。61绘图函数lines()添加线curve()添加曲线abline()添加给定斜率的线points()添加点segments()折线arrows()箭头axis()坐标轴box()外框title()标题text()文字mtext()图边文字第61页,共84页。62绘图参数参数用在函数内部,在没有设定值时使用默认值。font = 字体lty = 线类型lwd = 线宽度pch = 点的类型,xlab = 横坐标ylab = 纵坐标xlim = 横坐标范围ylim = 纵坐标范围也可以对整个要绘制图形的各种参数

23、进行设定参见 par()第62页,共84页。63例1:从数据输入到t检验编号123456身高 m1.751.801.651.901.741.91体重kg607257909572 六名患者的身高和体重现有6名患者的身高和体重,检验体重除以身高的平方是否等于22.5。第63页,共84页。64第一种方式:从控制台输入数据数据量较少时可以从控制台直接输入: 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-weight/sq.height t.tes

24、t(ratio, mu=22.5) 第64页,共84页。65第二种方式 从外部读取数据数据量较大时用read.table函数从外部txt文件读取第1步 将Excel中的数据另存为.txt格式(制表符间隔)或.csv格式。第2步 用read.table()或read.csv()函数将数据读入R工作空间,并赋值给一个对象。第65页,共84页。66图14 在Excel中将数据存为txt文件第66页,共84页。67例:t检验(续)一般从txt文档读取数据。每一行作为一个观测值。每一行的变量用制表符,空格或逗号间隔开。read.table(”位置”, header=T)read.csv(”位置”,hea

25、der=T)#从外部读取数据data1-read.table(d:/t.test.data.txt,header=T)bmi- data1$weight/data1$height2t.test(bmi, mu=22.5) #t检验第67页,共84页。68例2:单因素方差分析 将三种不同菌型的伤寒病毒a,b,c分别接种于10,9,和11只小白鼠上,观察其存活天数,问三种菌型下小白鼠的平均存活天数是否有显著差异。 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,

26、6, 3, 10 第68页,共84页。69准备数据表图15 数据表的准备day和type 各为一列第69页,共84页。70例2:方差分析(续)#数据读取,将test1.txt中的内容保存到bac中, header=T表示保留标题行。bac-read.table(d:/trees.txt,header=T) #将ba数据框中的type转换为因子(factor)bac$type-as.factor(bac$type) ba.an-aov(lm(daytype, data=bac) summary(ba.an) boxplot(daytype,data=bac,col=red)第70页,共84页。7

27、1图16 三种菌型对小白鼠影响的箱线图第71页,共84页。72例3-线性回归转速rpm 202224262830323436384042杂质率%8.49.511.810.413.314.813.214.716.416.518.918.5对一批涂料进行研究,确定搅拌速度对杂质含量的影响,数据如下,试进行回归分析表3 搅拌速度对涂料中杂质的影响第72页,共84页。73rate-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,

28、 16.5, 18.9, 18.5)plot(impurityrate)reg-lm(impurityrate)abline(reg,col=red)summary(reg)第73页,共84页。74四 简单编程第74页,共84页。75编程基础 R可以灵活的编写程序,用户自己编写的程序可以直接调用。基本格式 函数名 - function(数据,参数1= 默认值,) 表达式(循环/判别); return(返回值); 函数内部也可用#添加注释第75页,共84页。76程序流程控制 ifif(条件) 表达式 if(条件) 表达式1 else 表达式2 举例if(p=0.05) print(p 0.05!)第76页,共84页。77循环 for, whilefor(变量 in 向量) 表达式用法: for(i in 1:10) print(i)while(条件) 表达式 用法:i - 1while(i10) print(i) i - i + 1第77页,共84页。78返回值返回值表示函数输出的结果。返回值必须是一个对象。R默认将最后一行作为返回值。如果函数的结果需要有多个返回值,可以创建一个list(),并返回该对象。也可以用return()函数,设定返回值。但是一个函数的返回的对象只有一个。第78页,共84页。79简单函数举例问题:输入直角三角形的两个边长,求其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论