R软件入门-中国地质大学图书馆--首页.ppt

上传人:ga****84 文档编号:386158 上传时间:2018-09-30 格式:PPT 页数:88 大小:2.12MB
下载 相关 举报
R软件入门-中国地质大学图书馆--首页.ppt_第1页
第1页 / 共88页
R软件入门-中国地质大学图书馆--首页.ppt_第2页
第2页 / 共88页
R软件入门-中国地质大学图书馆--首页.ppt_第3页
第3页 / 共88页
R软件入门-中国地质大学图书馆--首页.ppt_第4页
第4页 / 共88页
R软件入门-中国地质大学图书馆--首页.ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

1、语言入门教程,中国地质大学(武汉)图书馆 高思宇,报告内容,一、 R简介二、 R函数与对象三、 编写脚本四 、R绘图五、 编写函数,一、 R 简 介,R语言的由来,R语言是从S语言演变而来的。S语言是二十世纪70年代诞生于贝尔实验室,由Rick Becker, John Chambers, Allan Wilks开发。基于S语言开发的商业软件Splus,可以方便的编写函数、建立模型,具有良好的扩展性,取得了巨大成功。1995年由新西兰Auckland大学统计系的Robert Gentleman和Ross Ihaka,编写了一种能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令

2、统称为R语言。,R软件简介,R是开源软件,代码全部公开,对所有人免费。R可在多种操作系统下运行,如Windows、MacOS、多种Linux和UNIX等。R需要输入命令,可以编写函数和脚本进行批处理运算,语法简单灵活。目前在R网站上约有2100个程序包,涵盖了基础统计学、社会学、经济学、生态学、地理学、医学统计学、生物信息学等诸多方面。,下载和安装R,The Comprehensive R Archive Network简称CRAN,提供下载安装程序和相应软件包。R主页 http:/www.r-project.org/ Windows版本下载地址之一:http:/ 开始安装。一直点击下一步,各

3、选项默认。,图1 R软件首页 http:/www.r-project.org/,图2 R登陆界面(Windows版),菜单栏,快捷按钮,控制台,命令行,R程序包,为什么要安装程序包?特定的分析功能,需要用相应的程序包实现。例如:时间序列分析,往往要用到TSA程序包,多元正态分布mvtnorm包等等。程序包是什么? R程序包是多个函数的集合,具有详细的说明和示例。Window下的R程序包是已经编译好的zip包。每个程序包包含R函数、数据、帮助文件、描述文件等。,常用R程序包,base- R 基础功能包stats- R统计学包nlme- 线性及非线性混合效应模型Graphics- 绘图lattic

4、e- 栅格图TSA- 时间序列分析mvtnorm- 多元正态分布分析truncnorm- 截尾正态分布cluster- 聚类分析,图3 所有程序包介绍 http:/ TSA包页面,R程序包,在CRAN 提供了每个包的源代码和编译好的MacOS、Window下的程序包以TSA包为例,CRAN提供了:Package source: TSA_1.01.tar.gzMacOS X binary: TSA_1.01.tgz Windows binary: TSA_1.01.zip Reference manual: TSA.pdf 等Window平台下程序包为zip文件,安装时不要解压。,R程序包安装,

5、1 连网时,用函数install.packages(),选择镜像后,程序将自动下载并安装程序包。例如: 打开RGui,在控制台中输入 install.packages(“TSA)2 安装本地zip包路径:Packagesinstall packages from local files选择光盘或者本地磁盘上存储zip包的文件夹。,程序包使用,在控制台中输入如下命令:library(TSA),查看帮助文件,如何知道TSA程序包内部都有哪些函数?最常用的方法:1 输入命令 ?TSA2 查看pdf帮助文档(从程序包下载页面下载),帮助文件的内容,以lm函数为例:?lm,为什么要学习编程?,界面操作直

6、观易学,但也存在一些不足: 操作的过程难以保存,数据处理不够灵活,在进行步骤繁多的数据处理工作时十分费时费力;在建立模型或自己编写函数时也会遇到困难。而这些困难可以通过编程解决。 学习R编程,首先要了解R的函数、对象及其操作。,二、 R函数与对象,R的函数,R是一种解释性语言,不需要先编译成.exe文件,输入后可直接运行。函数形式 function(对象,选项= )平均值 mean()线性回归 lm(yx, data=test)R处理的所有数据、变量、函数和结果都以对象的形式保存。,R的函数,每一个函数执行特定的功能,后面紧跟括号,例如:平均值 mean()求和 sum()绘图 plot()排

7、序 sort() 除了基本的运算之外,R的函数又分为高级和低级函数,高级函数内部嵌套了复杂的低级函数,例如plot()是高级绘图函数,函数本身会根据数据的类型,经过程序内部的函数判别之后,绘制相应类型的图形,并有大量的参数可选择。,部分函数,计算log(x) log10(x) exp(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)wilcox.test(),统计检验lm(y

8、 f+x)lm(y x1+x2+x3)bartlett.testbinom.testfisher.testchisq.testglm(y x1+x2+x3, binomial)friedman.test.,图5 箱线图修饰前后(左:默认值,右:修改属性后)boxplot(count spray, data = InsectSprays)boxplot(count spray, data = InsectSprays, col = red),R函数调用及其选项,R函数调用及其选项,函数的调用方法, 函数名+() 如 plot(), lm(),并将对象放入括号中,“=”表示设定参数。例如:boxp

9、lot(daytype, data=bac, col=“red“, xlab=“Virus”, ylab=“days”)daytype,以type为横轴,day为纵轴绘制箱线图。data=bac 数据来源baccol=“red” 箱线图为红色xlab=“Virus” 横轴名称为Virusylab=“days” 纵轴名称为days,赋值与注释,在控制台中键入如下命令2+2a代替 (一般用=比较快捷)b-2c, =, =, !=逻辑运算 与、或、非!, &, &, |, |,外部数据读取,最为常用的数据读取方式是用read.table() 函数或read.csv()函数读取外部txt或csv格式的

10、文件。 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) 可以弹出对话框,选择文件。,实例:从数据输入到t检验,现有6名患者的身高和体重,检验体重除以身高的平方是否等于22.5。,表1 六名患者的身高

11、和体重,第一种方式:从控制台输入数据,数据量较少时可以从控制台直接输入: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) 或mean(ratio)=22.5,第二种方式 从外部读取数据,数据量较大时用read.table函数从外部txt文件读取第1步 将Excel中的数据另存为.txt格式(制表符间隔)或.csv格式。第2步 用read.table()或read.csv(

12、)函数将数据读入R工作空间,并赋值给一个对象。,图6 在Excel中将数据存为txt文件,实例:t检验(续),一般从txt文档读取数据。每一行作为一个观测值。每一行的变量用制表符,空格或逗号间隔开。read.table(”位置”, header=T)read.csv(”位置”,header=T)#从外部读取数据data1-read.table(d:/t.test.data.txt,header=T)#Attach(data1)bmi- data1$weight/data1$height2t.test(bmi, mu=22.5) #t检验,实例:从数据输入到单因素方差分析,将三种不同菌型的伤寒病

13、毒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,准备数据表,图7 数据表的准备,实例:方差分析(续),#数据读取,将test1.txt中的内容保存到bac中, header=T表示保留标题行。bac-read.table(d:/anova.data.txt,header=T) #将ba数据框中的type转换为因子(factor

14、)bac$type-as.factor(bac$type) ba.an-aov(lm(daytype, data=bac) summary(ba.an) boxplot(daytype,data=bac,col=red),图8 三种菌型对小白鼠影响的箱线图,向量、矩阵和数据框的生成与排序,有时需要对读入的数据进行操作,将某一向量转换成矩阵,如条件筛选,此时将遇到向量、矩阵和数据框的生成、排序等。,向量的创建,四种类型的向量字符型character-c(China, Korea, Japan, UK, USA, France, India, Russia) 数值型numeric-c(1, 3,

15、6, 7, 3, 8, 6, 4)逻辑型logical-c(T, F, T, F, T, F, F, T)复数型 略,向量的创建,A=c(2,5,6,9) rep(2,times=4) seq(from=3, to=21, by=3 ) 1 3 6 9 12 15 18 211:15 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15通过与向量的组合,产生更为复杂的向量。rep(1:2,c(10,15),向量: 随机数的生成,runif(10, min = 0, max= 1) 1 0.32227168 0.12759789 0.33849635 0.84843855

16、0.67293416 0.14646444 7 0.60117150 0.39023874 0.04219423 0.67102520rnorm(10, mean = 0, sd = 1) 1 -1.58587380 -0.07775222 2.17126687 -1.02938226 0.46392281 0.74896049 7 -0.24556829 1.39034371 1.09975487 -1.44682767,定义矩阵的维度,dim()和 matrix()x - 1:12dim(x) - c(3,4) ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6

17、 9 12matrix.x - matrix(1:12,nrow=3,byrow=T)t(x)#转置为行或列添加名称:row.names() col.names(),数据框的创建,cbind() # 按列组合成数据框country.data-cbind(character,numeric,logical)rbind() # 按行组合成数据框data.frame() #生成数据框d - data.frame(character,numeric,logical),列表的创建,列表可以是不同类型甚至不同长度的向量(数值型,逻辑型,字符型等等)、数据框甚至是列表的组合。 list() 例如 list(

18、character,numeric,logic),对象的类型的判断,对象类型判断mode()class()is.numeric() #返回值为TRUE或FALSEis.logical()is.charactor()is.data.frame(),对象的类型的判断,对象类型转换as.numeric() #转换为数值型as.logical()as.charactor()as.matrix()as.dataframe(),排序,将向量中的元素按照一定顺序排列。 sort() 按数值大小排序举例:intake=rnorm(10,0,1)sort(intake)order() 给出从小到大的出现序号。o

19、rder(intake)o - order(intake),三、编写脚本,编写脚本(Scripting),脚本是什么? 脚本是一系列命令。 可以先批量的编好程序,或者对别人已经编好的程序进行修改。之后输入到控制台进行调试,以满足数据分析的需求。语言高亮显示 在代码较多的情况下,有时需要对行数、函数、括号、函数选项等进行高亮显示,设置成不同的颜色,以减少错误。,图9 TinnR对R脚本的高亮显示,图10 NotePad+对R脚本的高亮显示,编辑器,R自带的脚本编辑器 Editplus ( ) TinnR (http:/www.sciviews.org/Tinn-R/ ) Ultraedit (

20、) Emacs (www.gnu.org/software/emacs/ ) Notepad+ 与NpptoR组合(http:/notepad- ) 记事本或写字板 等等,举例-回归分析脚本,对一批涂料进行研究,确定搅拌速度对杂质含量的影响,数据如下,试进行回归分析,表2 搅拌速度对涂料中杂质的影响,脚本举例,#将以下代码粘贴到编辑器中,另存为regression.r文件。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,

21、16.4, 16.5, 18.9, 18.5)plot(impurityrate)regFileOpen Script #Ctrl+R运行3 直接粘贴到R控制台ctrl+c, ctrl+v,四、R绘图,图11 R绘制的图形,R绘图功能,R具备卓越的绘图功能,通过参数设置对图形进行精确控制。绘制的图形能满足出版印刷的要求,可以输出JPEG、TIFF、EPS、emf、pdf、png等各种格式。 绘图是通过绘图函数结合相应的选项完成的。 绘图函数包括高水平绘图函数和低水平绘图函数。,高水平绘图函数,plot() 绘制散点图等多种图形hist() 直方图boxplot() 箱线图stripchart(

22、) 点图barplot() 条形图dotplot() 点图piechart() 饼图interaction.plot() 交互效应图,图12 散点图与箱线图举例,低水平绘图函数,lines() 添加线curve() 添加曲线abline() 添加给定斜率的线points() 添加点segments() 折线arrows() 箭头axis() 坐标轴box() 外框title() 标题,绘图参数,参数用在函数内部,在没有设定值时使用默认值。font= 字体lty= 线类型lwd= 线宽度pch= 点的类型,xlab= 横坐标ylab= 纵坐标xlim= 横坐标范围ylim= 纵坐标范围,举例:绘

23、图,生成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),图14 绘图举例,一页多图,par()par(mfrow=c(2,2).,图15 绘图举例,在原有图形上添加元素,举例:x - rnorm(100) # 生成随机数hist(x,freq=F) # 绘制直方图curve

24、(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) #添加曲线,图17 在原有直方图上添加曲线,五、编写函数,编程基础,R可以灵活的编写程序,用户自己编写的程序可以直接调用。R语言编程时无需声明变量的类型,这与C,C+等语言不同。基本格式 function.name-function(x, y) 表达式 函数内部也可用#添加注释,程

25、序流程控制 if,if 表达式的写法if(条件) 表达式 if(条件) 表达式1 else 表达式2 举例:if(p0.05!),循环 for, while,for(变量 in 向量) 表达式 for(i in 1:10) print(i)while(条件) 表达式 i - 1while(i10) print(i) i - i + 1 ,函数举例,定义函数:gsy-function(x,y) z - x2 + y2; result从本地zip文件安装程序包调用程序包library(TSA)library(mvtnorm),练习三:查询函数帮助,查看boxplot的帮助文件?boxplot查看最

26、后的examples 将帮助文件中的内容粘贴到控制台中,运行并观看运行结果。boxplot(count spray, data = InsectSprays, col = lightgray)选项更改boxplot(count spray, data = InsectSprays, col = “red”, xlab=“spray”, ylab=“counts”),练习四:数据读取和t检验,现有6名患者的身高和体重,检验体重除以身高的平方是否等于22.5。,表3 六名患者的身高和体重,练习四:数据读取和t检验,将表3中的数据录入Excel中,另存为t.test.txt文件。用read.tabl

27、e函数读取该文件。t.test.data-read.table(“X:/t.test.txt”, header=T)对变量t.test.data中的attach(t.test.data)ratio-weight/height2t.test(ratio),练习五: 方差分析和箱线图绘制,1 在excel或txt中准备数据表2 用R读取数据表3 输入如下命令进行方差分析、绘制箱线图boxplot(daytype,data=bac,col=red) ba.an-aov(lm(daytype,data=bac) summary(ba.an),练习六:因子生成,将 100, 200, 400, 600, 800 输入R中,保存到numeric对象中 numeric-c(100, 200, 400, 600, 800)将numeric转换为factor factor.numeric-as.factor(numeric)查看factor.numeric的内容 factor.numeric,练习七 编写函数,编写一个函数,给出两个数之后,直接给出这两个数的平方和。(或自主编写感兴趣的函数)sqtest-function(x, y) z1=x2; z2=y2; z3=z1+z2; z3 ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。