《[赞]R语言学习知识教学方案计划教案记录材料资料知识学习入门基础级2知其然.doc》由会员分享,可在线阅读,更多相关《[赞]R语言学习知识教学方案计划教案记录材料资料知识学习入门基础级2知其然.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,.R编程笔记2一、 简介1. 突出特点:【多领域的统计资源】目前在R网站上约有2400个程序包,涵盖了基础统计学、社会学、经济学、生态学、空间分析、系统发育分析、生物信息学等诸多方面。【免费】2. 缺点:【占用内存】所有的数据处理在内存中进行,不适于处理超大规模的数据。【运行速度稍慢】即时编译,约相当于C语言的1/20。3. CRAN :全称The Comprehensive R Archive Network。由世界几十个镜像网站组成网络,提供下载安装程序和相应软件包。各镜像更新频率一般为1-2天。推荐镜像: 中国的镜像:数学所:http:/ftp.ctex.org/mirrors/CRA
2、N/即时更新的CRAN源:http:/cran.r-project.org/界面下如下(版本 R2.11.1)4. R程序包 (R packages)4.1 什么是R程序包R程序包是多个函数的集合,具有详细的说明和示例。每个程序包包含R函数、数据、帮助文件、描述文件等,window下是zip形式,安装时不要解压缩。R程序包是R功能扩展,特定的分析功能,需要用相应的程序包实现。例如:系统发育分析,常用到ape程序包,群落生态学vegan包等。4.2 常用R程序包ade4 利用欧几里得方法进行生态学数据分析adephylo系统进化数据挖掘与比较方法ape 系统发育与进化分析apTreeshape进
3、化树分析boot Bootstrap检验cluster聚类分析ecodist生态学数据相异性分析FD 功能多样性分析geiger物种形成速率与进化分析Graphics绘图lattice栅格图maptools空间对象的读取和处理mefa 生态学和生物地理学多元数据处理mgcv 广义加性模型相关mvpart多变量分解nlme 线性及非线性混合效应模型ouch 系统发育比较pgirmess生态学数据分析phangorn系统发育分析picante群落系统发育多样性分析raster栅格数据分析与处理seqinrDNA序列分析sp 空间数据处理spatstat空间点格局分析,模型拟合与检验splancs空
4、间与时空点格局分析stats R统计学包SDMTools物种分布模型工具vegan 植物与植物群落的排序,生物多样性计算CRAN Task Views 中有对程序包的分类介绍 4.3 R程序包安装1 用函数 install.packages(),如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。例如: 要安装picante包,在控制台中输入 install.packages(picante)2 安装本地zip包路径:Packagesinstall packages from local files选择本地磁盘上存储zip包的文件夹。4.4 程序包导入
5、及使用程序包的中函数,都要先导入,再使用导入:library(vegan) 包中函数使用方法同R自带的函数使用方法一样。4.5 查看帮助文件1查询程序包内容:1 菜单 帮助Html帮助2 查看pdf帮助文档2查询函数使用介绍:1 ?t.test 2 RGuiHelpHtml help3 apropos(t.test) 4 help(t.test)5 help.search(t.test) 6 查看R包pdf手册3解读帮助文件:lmstats #函数名及所在包 Fitting Linear Models #标题Description #函数描述Usage #默认选项Arguments #参数De
6、tails #详情Author(s) #作者References #参考文献Examples #举例例:帮助R函数帮助(文本)弹出点“确定”后弹出下面网页或录入 二、 函数与对象1. R函数1.1 函数形式 R是一种解释性语言,输入后可直接给出结果。功能靠函数实现。函数名(输入数据,参数= )例:平均值 mean(x, trim = 0, na.rm = FALSE, .) 线性模型 lm(yx, data=test)1.2 函数种类低级 VS 高级(泛函) HelpHtml helppackageslog() log10() exp() sin() cos() tan() asin() ac
7、os()binom.test()fisher.test()chisq.test()glm(y x1+x2+x3, binomial)friedman.test()常用统计函数如下:返回值返回序号举例:箱线图绘制函数的调用boxplot(daytype, data=bac, col=red, xlab=Virus, ylab=days)daytype, 以type为横轴,day为纵轴绘制箱线图。(type,day都是向量对象(后面会介绍)data=bac 数据来源bac (bac 为数据框对象)col=“red” 箱线图为红色xlab=“Virus” 横轴名称为Virusylab=“days”
8、纵轴名称为days2. 对象R处理的所有数据、变量、函数和结果都以对象的形式保存2.1 命名规则1. 区分大小写,注意China和china的不同。2. 不能用数字作为变量,对象也不能用数字开头,但是数字可以放在中间或结尾,如2result与result2,后者是合法的。3. 建议不要用过短的名称。可以用”.”作为间隔,例如 anova.result1。4. 不要使用保留名:NA, NaN, pi, LETTERS, letters, month.abb, month.name2.2 元素类型(存储类型)对象是由各元素组成的。每个元素,都有自己的数据类型数值型 Numeric 如 100, 0
9、, -4.335字符型 Character 如 “China”逻辑型 Logical 如TRUE, FALSE因子型 Factor 表示不同类别复数型 Complex 如:2 + 3i2.3 对象类型(结构化数据)向量(vector) 一系列元素的组合。如 c(1,2,3); c(a,a,b,b,c)因子(factor) 因子是一个分类变量c(a,a,b,b,c)矩阵(matrix) 二维的数据表,是数组的一个特例x - 1:12 ; dim(x) = 3) 数据框(dataframe) 是由一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。列表(list) 列表可以包
10、含任何类型的对象。 可以包含向量、矩阵、高维数组,也可以包含列表2.4 运算符数学运算 运算后给出数值结果+, -, *, /, (幂)比较运算 运算后给出判别结果(TRUE FALSE), , =, =, !=逻辑运算 与、或、非!, &, &, |, |2.5 数据表每个数据表可以看作一个数据框(dataframe),由很多不同类型的向量组成,如字符型,因子型,数值型,每一列(column)作为一个向量(vector),每一行(row)作为一个记录(entry)。如何生成数据框?(1) 从外部数据读取test.data - read.csv(D:/R/test2.csv,header=T)
11、 header=T 表示用第一行为列标题read.table(file=file.choose(),header=T) 可以弹出对话框,选择文件。数据量较大时用read.table函数从外部txt文件读取:data1-read.table(d:/t.test.data.txt,header=T)(2) 各类型因子组合成数据框见后2.6.3,数据框创建举例: 外部读入数据后进行方差分析bac-read.table(d:/anova.data.txt,header=T) #将ba数据框中的type转换为因子(factor)=有分类的作用bac$type-as.factor(bac$type) ba
12、.an-aov(lm(daytype, data=bac) summary(ba.an) boxplot(daytype,data=bac,col=red)2.6 对象的创建2.6.1 向量(1)生成向量的函数 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 211:15 #连续型数值向量 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15通过与向量的组合,产生更为复杂的向量。rep(1
13、:2,c(10,15) #数值1重复10次,数值2重复15次rep(1:5,1:5) #数值1至5按顺序分别重复1:5次注意:除了生成数值型向量,还可以生成字符型(abc),逻辑型(T,F)和复数型(a+bi)向量。(2)随机数向量 runif(10, min = 0, max= 1) #均匀分布随机数rnorm(10, mean = 0, sd = 1)# 正太分布随机数几个随机数的相关函数概率密度 dunif(x, min=0, max=1, log = FALSE) 累积函数 punif(q, min=0, max=1, )分位数 qunif(p, min=0, max=1, ) 随机均
14、匀分布 runif(n, min=0, max=1)2.6.2 矩阵dim() 和matrix() 为生成矩阵的函数,其中dim() 定义矩阵的行列数,举例:(1)x - 1:12dim(x) - c(3,4) ,1 ,2 ,3 ,4 1, 1 4 7 10 2, 2 5 8 11 3, 3 6 9 12(2)matrix.x - matrix(1:12,nrow=3,byrow=T)t(x) #转置 row.names() col.names #为行或列添加名称2.6.3 数据框cbind() # 按列组合成数据框rbind() # 按行组合成数据框data.frame() #生成数据框he
15、ad() #默认访问数据的前6行例子:2.6.4 列表列表可以是不同类型甚至不同长度的向量(数值型,逻辑型,字符型等等)、数据框甚至列表的组合。list()例如:list(character,numeric,logical,matrix.x)2.7 类的判断和转换2.7.1 判断 (is)对象类型判断mode() 判断存储的类型class() 判断数据的类根据数据的类,采用相应的处理方法。以下函数,主要用在函数处理异常时使用,目的是增强程序的稳健性。is.numeric() #返回值为TRUE或FALSEis.logical() #是否为逻辑值is.charactor() #是否为字符串is.
16、null() #是否为空is.na() #是否为na2.7.2 转换(as)as.numeric() #转换为数值型as.logical() #转换为逻辑型as.charactor() #转换为字符串as.matrix() #转换为矩阵as.data.frame() #转换为数据框as.factor() #转换为因子2.8 元素引用2.8.1 向量内其中 x2 - c(1,3,5)表示去除向量中第1,3,5个元素以一个向量作为元素引用的参数2.8.2 矩阵/数据框内矩阵和数据库都是二维的,元素引用方式类似分别对矩阵提取第一列元素、第二列元素、第2行第1列的元素 注意 数据框的不同列有列名称的
17、对整列的引用使用“$”可表示为intake FileOpen Script #Ctrl+R运行3 直接粘贴到R控制台ctrl+c, ctrl+v第三种最为简单直接务必要加后缀名啊!四、 绘图4.1功能简介R具备卓越的绘图功能,通过参数设置对图形进行精确控制。可输出Jpg、tiff、eps、emf、pdf、png等格式。通过与GhostScript软件的结合,可以生成600dpi,1200dpi的等各种分辨率和尺寸的图形。绘图是通过绘图函数&选项结合完成。绘图函数包括高级绘图函数和低级绘图函数4.2 绘图参数参数用在函数内部,在没有设定值时使用默认值。font = 字体, lty = 线类型,
18、lwd = 线宽度, pch = 点的类型,xlab = 横坐标, ylab = 纵坐标, main=主标题, ub=子标题xlim = 横坐标范围, ylim = 纵坐标范围,axis()坐标轴,box() 图边框也可以对整个要绘制图形的各种参数进行设定参见 par()4.3 实例 (1)一气呵成插入文本函数 text()(2)分步绘图添加Y轴,并设置轴标签跨度将点加入添加X轴添加外框空图版添加标题 (3)添加对象五、 编写函数R可以灵活的编写程序,用户自己编写的程序可以直接调用。编程时无需声明变量的类型。 5.1基本格式 函数名 - function(数据,参数1= 默认值,) 异常处理; 表达式(循环/判别); return(返回值); 函数内部也可用 # 添加注释5.2 if 判断,for循环用法if (条件) 表达式1 else 表达式2for(变量 in 向量) 表达式while(条件) 表达式 5.3返回值 1.返回值表示函数输出的结果。2.返回值必须是一个对象。3.R默认将最后一行作为返回值。4.如果函数的结果需要有多个返回值,可以创建一个list(),并返回该对象。5.也可以用return()函数,设定返回值。6.但是一个函数的返回的对象只有一个。