版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1简介及基本指令2012年4月25日2报告内容一R简介二对象、函数和软件包三R基本指令四简单编程3一R简介4什么是R?图1R首页的图形R是一种统计绘图语言,也指实现该语言的软件。TheRProjectforStatisticalComputing
R的起源1995年由新西兰Auckland大学统计系的RobertGentleman和RossIhaka,基于S语言的源代码,编写了一能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。RobertGentlemanRossIhaka自1997年以后,有一个核心团队,这一团队能对R的源代码进行修改。6R的优点丰富的资源涵盖了多种行业数据分析中几乎所有的方法。良好的扩展性十分方便得编写函数和程序包,跨平台,可以胜任复杂的数据分析、绘制精美的图形。完备的帮助系统每个函数都有统一格式的帮助,运行实例。Free7R的缺点用户需要对命令熟悉与代码打交道,需要记住常用命令。帮助系统均为英文占用内存所有的数据处理在内存中进行,不适于处理超大规模的数据。运行速度稍慢即时编译,约相当于C语言的1/20。8图2R软件首页/
9CRANTheComprehensiveRArchiveNetwork简称CRAN,由世界几十个镜像网站组成网络,提供下载安装程序和相应软件包。各镜像更新频率一般为1-2天推荐镜像:中国的镜像:数学所/mirrors/CRAN/及时更新的CRAN源/10Windows下载和安装RCRAN:Binaries>Windows>base下载完成后,双击R-2.11.0-win32.exe
开始安装。一直点击下一步,各选项默认,语言建议选英文。图3R2.11.0下载页面R的Windows图形用户界面(RGUI)菜单按钮命令行绘图区R管理的几个概念使用期(Session):
启动R系统到结束R系统之间的时间段对象(Object):
由R产生或处理的实体,包括变量、向量、矩阵、组合、函数等历史(Histroy):R使用期间所应用的历史记录(XXX.Rhistroy)工作空间(Workspace):
当前被存储对象的集合(XXX.Rdata)不但对象而且包含了对象的系统环境;当一次使用完毕要关闭R时,R会询问是否保存工作空间软件包(Package):
执行一定功能的函数、数据等的集合,一些内置于R系统内,大部分外置于网络R代码管理R文件(对象)管理工作空间载入和存储历史记录管理路径管理文件管理R文件(对象)管理工作路径:getwd()setwd(“aa:/bb/…”)导入Rcode:source(“aa:/bb/…/XXX.rorXXX.txt”)如果已设定是工作路径则source(“XXX.rorXXX.txt”)存储工作空间:save.image(“XXX.Rdata”);导入工作空间load(“XXX.Rdata”),或者直接双击XXX.Rdata打开R界面,此时工作空间自动导入,工作路径默认为XXX.Rdata存储时的工作路径存储、导入命令行历史记savehistory(file=“XXX.Rhistory”)loadhistory(file=“XXX.Rhistory”)R界面调整R工作空间内对象和软件包显示显示工作空间中的对象删除工作空间中的所有对象显示置入R工作空间的所有Packagels()rm(list=ls())search()R的Package管理将R的library的package载入R工作空间library(“packagename”)从网络将外置的package载入R的library从计算机硬盘其它文件夹的package载入R的library18二对象、函数和程序包对象(Object):
由R产生或处理的实体,包括变量、向量、矩阵、组合等函数(Function):执行R任务的一个完整的程序。程序包(Package):
执行一定功能的函数的集合,一些内置于R系统内,大部分外置于网络20对象赋值与注释在控制台中键入如下命令2+2a<-2<-也可用=,甚至->代替b<-2c<-a+bc#注释赋值符号21元素的类型对象是由各元素组成的。每个元素,都有自己的数据类型数值型Numeric如
100,0,-4.335字符型Character如“China”逻辑型Logical如TRUE,FALSE因子型Factor
表示不同类别复数型Complex如:2+3i22如何为对象起名?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,]14710[2,]25811[3,]3691224对象的类数据框(dataframe)
是由一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。X=1:26y=lettersdata.frame(x,y)列表(list)
列表可以包含任何类型的对象,也就是数据集。可以包含向量、矩阵、高维数组,也可以包含列表25R的函数R是一种解释性语言,输入后可直接给出结果。功能靠函数实现。函数形式:
函数(输入数据,参数=)如果没有指定,则参数的以默认值为准。例如:线性模型
lm(y~x,data=test)26图11R帮助文件的内容与格式apropos("tab")27帮助文件的内容lm{stats}#函数名及所在包
FittingLinearModels#标题Description#函数描述Usage#函数用法及默认选项Arguments#参数Details#详情Values#计算结果解释Author(s)#作者References#参考文献Examples#举例28R程序包(RPackages)程序包是什么?
R程序包是多个函数的集合,具有详细的说明和示例。
Window下的R程序包是经过编译的zip包。每个程序包包含R函数、数据、帮助文件、描述文件等。为什么要安装程序包?
R程序包是R功能扩展,特定的分析功能,需要用相应的程序包实现。例如:群落生态学vegan包,系统发育分析ape程序包。如何寻找包?29如何寻找包?30如何寻找包?31如何寻找包?32如何寻找包?33如何寻找包?3435安装程序包的方法1安装本地zip包路径:Packages>installpackagesfromlocalfiles选择本地磁盘上存储zip包的文件夹。2用函数install.packages()如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。例如:要安装vegan包,在控制台中输入
install.packages("vegan")36程序包使用程序包的中函数,都要先导入,再使用,因此导入程序包是第一步。在控制台中输入如下命令:library(vegan)程序包内的函数的用法与R内置的基本函数用法一样。library(vegan)Thisisvegan1.17-237查看程序包帮助文件vegan程序包内部都有哪些函数?分别有什么功能?查询程序包内容最常用的方法:1菜单帮助>Html帮助2查看pdf帮助文档3引用citation(package='vegan')38常用R程序包(I)ade4利用欧几里得方法进行生态学数据分析adephylo系统进化数据挖掘与比较方法ape系统发育与进化分析apTreeshape进化树分析bootBootstrap检验cluster聚类分析ecodist生态学数据相异性分析FD功能多样性分析geiger物种形成速率与进化分析39常用R程序包(II)Graphics绘图lattice栅格图maptools空间对象的读取和处理mefa生态学和生物地理学多元数据处理mgcv广义加性模型相关mvpart多变量分解nlme线性及非线性混合效应模型ouch系统发育比较pgirmess生态学数据分析phangorn系统发育分析40常用R程序包(III)picante群落系统发育多样性分析raster栅格数据分析与处理seqinrDNA序列分析sp空间数据处理spatstat空间点格局分析,模型拟合与检验splancs空间与时空点格局分析statsR统计学包SDMTools物种分布模型工具vegan植物与植物群落的排序,生物多样性计算41图9CRANTaskViews:对程序包的分类介绍/web/views/CRANTaskViews42R图形界面:RcommanderRcommander是R的图形界面之一,是JohnFox教授编写的,适用于不希望R编程的用户。随着用户的操作,其窗口还可以显示出相应操作的R程序,对于初学者可能会有帮助,但不推荐使用!安装Rcommanderinstall.packages("Rcmdr")R将自动下载并安装Rcmdr所需的所有程序包43图形界面之一:RCommander图12Rcommander界面
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)比较运算运算后给出判别结果(TRUEFALSE)>,<,<=,>=,==,!=三角函数
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]36912151821“:”1:15(15:1)[1]123456789101112131415通过与向量的组合,产生更为复杂的向量。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)#标准化,默认是Tappend(x,values,after=length(x))#往向量内插值table(x)#频率分布表match(x,y)#返回x长度的向量,y等取,不等NAcor(x,y)相关系数51向量内的元素引用x<-c(5260,5470,5640,6180,6390,6515,6805,7515,7515,8230,8770)x[5];
#引用第5个元素x[c(3,5,7)]
#引用第3,5,7个元素v<-c(3,5,7);x[v];
x[1:5];
#引用第1到5个元素x[-c(3,5,7)]
#去除第3,5,7元素x[x>6000]#大于6000的元素x[x>6000&x<8000]#大于6000的元素且小于8000的元素52矩阵的创建生成矩阵的函数
dim()和matrix()dim()定义矩阵的行列数,例如:
x<-1:12dim(x)<-c(3,4)[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912x<-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)#行的平均值x[i,j]#第i行,第j个元素x[i,],x[,j],x[1: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")x[order(±x[,1]),]#矩阵排序55数据表的行与列低地33220251049样方5低地20260241238样方4山坡45390201146样方3山坡30350261251样方2山顶25600221540样方1类型坡度海拔属数科数物种数行名Rownames字符串列名
Columnnames每列可看做带名称的向量表1数据表、数据框与向量字符串、因子每行作为一个Entry56数据框的创建创建数据框的函数: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或FALSEis.logical()
#是否为逻辑值is.charactor()
#是否为字符串is.null()#是否为空is.na()#是否为na59类的转换as.numeric()#转换为数值型as.logical()#转换为逻辑型as.charactor()#转换为字符串as.matrix()#转换为矩阵as.data.frame()#转换为数据框as.factor()#转换为因子60简单绘图函数plot(x)绘制散点图等多种图形,根据数据的类,调用相应的函数绘图hist()频率直方图boxplot()箱线图stripchart()点图barplot()柱状图dotplot()点图piechart()饼图matplot()数学图形61绘图函数lines()添加线curve()添加曲线abline()添加给定斜率的线points()添加点segments()折线arrows()箭头axis()坐标轴box()外框title()标题text()文字mtext()图边文字62绘图参数参数用在函数内部,在没有设定值时使用默认值。font=
字体lty=
线类型lwd=
线宽度pch=
点的类型,xlab=
横坐标ylab=
纵坐标xlim=
横坐标范围ylim=
纵坐标范围也可以对整个要绘制图形的各种参数进行设定参见par()63例1:从数据输入到t检验编号123456身高m1.751.801.651.901.741.91体重kg607257909572
六名患者的身高和体重现有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<-height^2ratio<-weight/sq.heightt.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$height^2t.test(bmi,mu=22.5)#t检验68例2:单因素方差分析
将三种不同菌型的伤寒病毒a,b,c分别接种于10,9,和11只小白鼠上,观察其存活天数,问三种菌型下小白鼠的平均存活天数是否有显著差异。
a菌株:2,4,3,2,4,7,7,2,5,4b菌株:5,6,8,5,10,7,12,6,6c菌株: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(day~type,data=bac))summary(ba.an)boxplot(day~type,data=bac,col="red")71图16三种菌型对小白鼠影响的箱线图72例3-线性回归转速rpm202224262830323436384042杂质率%8.49.511.810.413.314.813.214.716.416.518.918.5对一批涂料进行研究,确定搅拌速度对杂质含量的影响,数据如下,试进行回归分析表3搅拌速度对涂料中杂质的影响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,16.5,18.9,18.5)plot(impurity~rate)reg<-lm(impurity~rate)abline(reg,col="red")summary(reg)74四简单编程75编程基础R可以灵活的编写程序,用户自己编写的程序可以直接调用。基本格式函数名<-function(数据,参数1=默认值,…){
表达式(循环/判别);return(返回值);}函数内部也可用#添加注释76程序流程控制ifif(条件)表达式if(条件)表达式1else
表达式2举例{if(p<=0.05)print("p<=0.05!")elseprint("p>0.05!")}77循环for,whilefor(变量
in向量)表达式用法:
for(iin1:10)print(i)while(条件)表达式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国环保束线带行业投资前景及策略咨询研究报告
- 2024至2030年中国浮水背心数据监测研究报告
- 2024至2030年中国极薄壁不锈钢焊管行业投资前景及策略咨询研究报告
- 2024至2030年中国强嗅抗失水药剂数据监测研究报告
- 2024至2030年中国塑胶弹簧公仔行业投资前景及策略咨询研究报告
- 四川省2024-2025学年高二上学期期中调研测试数学试题
- 九年级家长会课件
- 吉林省白山市(2024年-2025年小学五年级语文)统编版竞赛题((上下)学期)试卷及答案
- 西藏林芝地区(2024年-2025年小学五年级语文)人教版小升初真题(下学期)试卷及答案
- 月付合同模板
- 宁夏朝觐活动传染病防控工作方案
- 舌战群儒 剧本台词
- 【信息技术 】计算机系统互联(第一课时)课件 2022-2023学年教科版(2019)高中信息技术必修2
- 300t双柱油压机拆装方案
- 中国湿疹诊疗指南
- GB/T 6163-2011调频广播接收机测量方法
- GB/T 6003.1-2012试验筛技术要求和检验第1部分:金属丝编织网试验筛
- GB/T 13459-2008劳动防护服防寒保暖要求
- GB/T 1231-1991钢结构用高强度大六角头螺拴、大六角螺母、垫圈技术条件
- 立志做有理想敢担当能吃苦肯奋斗的新时代好青年PPT课件(带内容)
- 翻译实习教学大纲
评论
0/150
提交评论