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

下载本文档

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

文档简介

1,简介及基本指令,2012年4月25日,2,报告内容,一 R简介 二 对象、函数和软件包 三 R基本指令 四 简单编程,3,一 R 简介,4,什么是R?,图1 R首页的图形 R是一种统计绘图语言,也指实现该语言的软件。,The R Project for Statistical Computing,R 的起源,1995年由新西兰Auckland大学统计系的Robert Gentleman和Ross Ihaka,基于S语言的源代码,编写了一能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。,Robert Gentleman,Ross Ihaka,自1997年以后,有一个核心团队,这一团队能对 R 的源代码进行修改。,6,R的优点,丰富的资源 涵盖了多种行业数据分析中几乎所有的方法。 良好的扩展性 十分方便得编写函数和程序包,跨平台,可以胜任复杂的数据分析、绘制精美的图形。 完备的帮助系统 每个函数都有统一格式的帮助,运行实例。 Free,7,R的缺点,用户需要对命令熟悉 与代码打交道,需要记住常用命令。 帮助系统均为英文 占用内存 所有的数据处理在内存中进行,不适于处理超大规模的数据。 运行速度稍慢 即时编译,约相当于C语言的1/20。,8,图2 R软件首页 /,9,CRAN,The Comprehensive R Archive Network 简称CRAN,由世界几十个镜像网站组成网络,提供下载安装程序和相应软件包。各镜像更新频率一般为1-2天 推荐镜像: 中国的镜像:数学所 /mirrors/CRAN/ 及时更新的CRAN源 /,10,Windows下载和安装R,CRAN: BinariesWindowsbase 下载完成后,双击R-2.11.0-win32.exe 开始安装。 一直点击下一步,各选项默认,语言建议选英文。,图3 R2.11.0下载页面,R 的Windows图形用户界面 (RGUI),菜 单,按钮,命令行,绘 图 区,R 管理的几个概念,使用期 (Session): 启动R系统到结束R系统之间的时间段 对 象 (Object): 由R产生或处理的实体,包括变量、向量、矩阵、组合、函数等 历 史 (Histroy): R使用期间所应用的历史记录(XXX.Rhistroy) 工作空间 (Workspace): 当前被存储对象的集合(XXX.Rdata)不但对象而且包含了对象的系统环境;当一次使用完毕要关闭R时,R会询问是否保存工作空间 软件包 (Package): 执行一定功能的函数、数据等的集合,一些内置于R系统内,大部分外置于网络,R 文件(对象)管理,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”) loadhistory(file=“XXX.Rhistory”),R 界面调整,R 工作空间内对象和软件包显示,显示工作空间中的对象,删除工作空间中的所有对象,显示置入R工作空间的所有 Package,ls(),rm(list=ls(),search(),R 的 Package 管理,library(“packagename”),18,二 对象、函数和程序包,对 象 (Object): 由R产生或处理的实体,包括变量、向量、矩阵、组合等 函 数 (Function): 执行R 任务的一个完整的程序。 程序包(Package): 执行一定功能的函数的集合,一些内置于R系统内,大部分外置于网络,20,对象赋值与注释,在控制台中键入如下命令 2 + 2 a 代替 b - 2 c - a+b c #注释,赋值符号,21,元素的类型,对象是由各元素组成的。每个元素,都有自己的数据类型 数值型 Numeric 如 100, 0, -4.335 字符型 Character 如 “China” 逻辑型 Logical 如TRUE, FALSE 因子型 Factor 表示不同类别 复数型 Complex 如:2 + 3i,22,如何为对象起名?,R处理的所有数据、变量、函数和结果都以对象的形式保存。 1. 区分大小写,注意China和china的不同。 2. 不能用数字作为变量,对象也不能用数字开头,但是数字可以放在中间或结尾,如2result与result2,后者是合法的。 3. 建议不要用过短的名称。可以用“.”作为间隔,例如 anova.result1。 4. 不要使用保留名: NA, NaN, pi, LETTERS, letters, month.abb, ,23,对象的类(class),向量(vector) 一系列元素的组合。 如 c(1,2,3); c(“a“,“a“,“b“,“b“,“c“) 矩阵(matrix) 二维的数据表,是数组的一个特例 matrix(1:12,3,4) ,1 ,2 ,3 ,4 1, 1 4 7 10 2, 2 5 8 11 3, 3 6 9 12,24,对象的类,数据框(dataframe) 是由一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。 X=1:26 y=letters data.frame(x,y) 列表(list) 列表可以包含任何类型的对象,也就是数据集。 可以包含向量、矩阵、高维数组,也可以包含列表,25,R的函数,R是一种解释性语言,输入后可直接给出结果。 功能靠函数实现。 函数形式: 函数(输入数据,参数= ) 如果没有指定,则参数的以默认值为准。 例如: 线性模型 lm(yx, data=test),26,图 11 R帮助文件的内容与格式,apropos(“tab“),27,帮助文件的内容,lmstats #函数名及所在包 Fitting Linear Models #标题 Description #函数描述 Usage #函数用法及默认选项 Arguments #参数 Details #详情 Values #计算结果解释 Author(s) #作者 References #参考文献 Examples #举例,28,R程序包(R Packages),程序包是什么? R程序包是多个函数的集合,具有详细的说明和示例。 Window下的R程序包是经过编译的zip包。 每个程序包包含R函数、数据、帮助文件、描述文件等。 为什么要安装程序包? R程序包是R功能扩展,特定的分析功能,需要用相应的程序包实现。 例如:群落生态学vegan包,系统发育分析ape程序包。,如何寻找包?,29,如何寻找包?,30,如何寻找包?,31,如何寻找包?,32,如何寻找包?,33,如何寻找包?,34,35,安装程序包的方法,1 安装本地zip包 路径:Packagesinstall packages from local files 选择本地磁盘上存储zip包的文件夹。 2 用函数 install.packages() 如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。 例如: 要安装vegan包,在控制台中输入 install.packages(“vegan“),36,程序包使用,程序包的中函数,都要先导入,再使用,因此导入程序包是第一步。 在控制台中输入如下命令: library(vegan) 程序包内的函数的用法与R内置的基本函数用法一样。 library(vegan) This is vegan 1.17-2,37,查看程序包帮助文件,vegan 程序包内部都有哪些函数?分别有什么功能? 查询程序包内容最常用的方法: 1 菜单 帮助Html帮助 2 查看pdf帮助文档 3 引用 citation(package = vegan),38,常用R程序包(I),39,常用R程序包(II),40,常用R程序包(III),41,图 9 CRAN Task Views: 对程序包的分类介绍 /web/views/,CRAN Task Views,42,R图形界面:R commander,R commander是R的图形界面之一,是John Fox教授编写的,适用于不希望R编程的用户。随着用户的操作,其窗口还可以显示出相应操作的R程序,对于初学者可能会有帮助,但不推荐使用! 安装R commander install.packages(“Rcmdr“) R将自动下载并安装Rcmdr所需的所有程序包,43,图形界面之一:R Commander,图 12 R commander 界面 library(Rcmdr),界面操作代码,结果输出,44,三 R基本指令,45,数据读取,最为常用的数据读取方式是用read.table() 函数或read.csv()函数读取外部txt或csv格式的文件。 txt文件,制表符间隔 read.table(“*.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文件的函数。,46,数据保存,write.table(x,file=“*.txt”) write.csv(x,file=“*.csv”) sink(“*.txt”) sink() #sink开头,sink()结束 save.image(file=“test.RData“) edit(x) fix(x),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)= factorial(m)/factorial(m-n),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),49,向量运算指令,最大值 max(x) 最小值 min(x) 中值 median(x) 分位数 quantile(x,probs=0.25) 平均值 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),50,向量运算指令,rev(x) #倒置 sort(x) #升序 rev(sort(x) #降序 unique(x) #去掉重复元素 sample(x,n) #从向量内随机抽取n个,不放回 sample(x,n,replace=T) #放回随机抽样 scale(x,scale=F,center=F)#标准化,默认是T append(x, values, after = length(x) # 往向量内插值 table(x) #频率分布表 match(x,y) #返回x长度的向量,y等取,不等NA cor(x,y)相关系数,51,向量内的元素引用,x 6000 #大于6000的元素 xx6000&x8000#大于6000的元素且小于8000的元素,52,矩阵的创建,生成矩阵的函数 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 12 x - matrix(1:12,nrow=3,byrow=T) rownames(x)=c(“row1”,“row1”,“row1”) colnames(x)=paste(“col“, 1:4, sep = “),53,矩阵的运算,dim(x) # 矩阵的维数 t(x) #转置矩阵 rowsum(x) #行的和 rowMeans(x)#行的平均值 colsum(x) #列的和 colMeans(x)#行的平均值 xi,j #第i行,第j个元素 xi,x,j,x1:5,2:4 x$colname #引用列,后面为列的名称,54,矩阵的运算,cbind () # 相同行数的矩阵组合 rbind() # 相同列数的矩阵组合 head() #默认访问矩阵的前6行 tail()#默认访问矩阵的最后6行 attach() #直接调用数据框内的列,以列的名称作为向量的名称 detach() subset() #条件调用 subset (iris, select= c(Sepal.Length, Petal.Length), Species = “setosa“) xorder(x,1), #矩阵排序,55,数据表的行与列,行名Row names 字符串,列名 Column names,每列可看做带名称的向量,表1 数据表、数据框与向量,字符串、因子,每行作为一个Entry,56,数据框的创建,创建数据框的函数: data.frame(x,y,z), as.data.frame(x,rownames=NUll) cbind() rbind() edit()和fix() #修改数据矿 矩阵的命令基本上也适用于数据框,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“),58,类的判断,对象类型判断 mode() 判断存储的类型 class() 判断数据的类 is.numeric() #返回值为TRUE或FALSE is.logical() #是否为逻辑值 is.charactor() #是否为字符串 is.null() #是否为空 is.na() #是否为na,59,类的转换,as.numeric() #转换为数值型 as.logical() #转换为逻辑型 as.charactor() #转换为字符串 as.matrix() #转换为矩阵 as.data.frame() #转换为数据框 as.factor() #转换为因子,60,简单绘图函数,61,绘图函数,62,绘图参数,参数用在函数内部,在没有设定值时使用默认值。 font = 字体 lty = 线类型 lwd = 线宽度 pch = 点的类型, xlab = 横坐标 ylab = 纵坐标 xlim = 横坐标范围 ylim = 纵坐标范围 也可以对整个要绘制图形的各种参数进行设定 参见 par(),63,例1:从数据输入到t检验,六名患者的身高和体重,现有6名患者的身高和体重,检验体重除以身高的平方是否等于22.5。,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.test(ratio, mu=22.5),65,第二种方式 从外部读取数据,数据量较大时用read.table函数从外部txt文件读取 第1步 将Excel中的数据另存为.txt格式(制表符间隔)或.csv格式。 第2步 用read.table()或read.csv()函数将数据读入R工作空间,并赋值给一个对象。,66,图14 在Excel中将数据存为txt文件,67,例:t检验(续),一般从txt文档读取数据。每一行作为一个观测值。每一行的变量用制表符,空格或逗号间隔开。 read.table(”位置”, header=T) read.csv(”位置”,header=T) #从外部读取数据 data1-read.table(“d:/t.test.data.txt“,header=T) bmi- data1$weight/data1$height2 t.test(bmi, mu=22.5) #t检验,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, 6, 3, 10,69,准备数据表,图15 数据表的准备 day和type 各为一列,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“),71,图16 三种菌型对小白鼠影响的箱线图,72,例3-线性回归,对一批涂料进行研究,确定搅拌速度对杂质含量的影响,数据如下,试进行回归分析,表3 搅拌速度对涂料中杂质的影响,73,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),74,四 简单编程,75,编程基础,R可以灵活的编写程序,用户自己编写的程序可以直接调用。 基本格式 函数名 - function(数据,参数1= 默认值,) 表达式(循环/判别); return(返回值); 函数内部也可用#添加注释,76,程序流程控制 if,if(条件) 表达式 if(条件) 表达式1 else 表达式2 举例 if(p 0.05!“) ,77,循环 for, while,for(变量 in 向量) 表达式 用法: for(i in 1:10) print(i) while(条件) 表达式 用法: i - 1 while(i10) print(i) i - i + 1 ,78,返回值,返回值表示函数输出的结果。 返回值必须是一个对象。 R默认将最后一行作为返回值。 如果函数的结果需要有多个返回值,可以创建一个list(),并返回该对象。 也可以用return()函数,设定返回值。 但是一个函数的返回的对象只有一个。,79,简单函数举例,问题:输入直角三角形的两个边长,求其斜边长。 定义函数: rcal = function(x,y) z - x2 + y2 result - sqrt(z) return(result) 调用函数: rcal(3,4),80,条

温馨提示

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

评论

0/150

提交评论