1、第一章 R语言操作张春雨1ppt课件R的数据操作1.所有对象都有两个内在属性:类型和类型和长度长度 类型是对象元素的基本种类,共有四种:数值型、字符型、复数型和逻辑型 长度是对象中元素的数目2.对象类型和长度可用函数mode和length获得例:x-1;mode(x);length(x)A-Gomphotherium;compar-TRUE;z-1i mode(A);mode(compar);mode(z)2ppt课件例:data1=read.table(file.choose(),header=T)#读exampledata data2=read.table(header=TRUE,text
2、=a b 1 2 3 4)读取数据:.txt文件3ppt课件存储数据:.txt文件函数write.table可以在文件中写入一个对象,一般是写一个数据框,也可以是其它类型的对象(向量,矩阵.)write.table(x,file=,append=FALSE,quote=TRUE,sep=,eol=n,na=NA,dec=.,row.names=TRUE,col.names=TRUE,qmethod=c(escape,double)例:例:write.table(data1,file=“mydata)4ppt课件格式:read.csv(file,header=TRUE,sep=,quote=,d
3、ec=.,fill=TRUE,comment.char=,.)例:1.将excel文件转存为csv格式文件2.data1=read.csv(file.choose(),header=T)#读exampledata.csv3.data2=write.csv(?,file=)#读exampledata.csv读取和存储数据:.csv文件5ppt课件生成数据#生成1到30的规则整数序列:x-1:30#函数seq生成实数序列:seq(1,5,0.5)#第一个数字为起点,第二个为终点,第三个为步长 seq(length=9,from=1,to=5)#等价于 seq(length=9,1,5)#函数c直接
4、输入数值:c(1,1.5,2,2.5,3,3.5,4,4.5,5)#函数rep用来创建一个所有元素都相同的向量:rep(1,30)6ppt课件随机序列生成函数例:rnorm(100,0,1)#显著性水平为5%的正态分布的双侧临界值:qnorm(0.025)qnorm(0.975)该类统计函数具有相似形式,只需用d、p或者q替代r,如密度函数dfunc(x,.),累计概率密度函数(即分布函数)pfunc(x,.),分位数函数qfunc(p,.)7ppt课件创建和使用对象向量:向量:函数vector有两个参数:类型(mode)和长度(length)。数值型向量则元素值都为0,逻辑型都为FALSE,
5、字符型都为。例:a=0;b=FALSE;c=a=numeric();b=logical();c=character()8ppt课件因子因子:一个因子不仅包括分类变量本身还包括变量不同的可能水平factor(x,levels=sort(unique(x),na.last=TRUE),labels=levels,exclude=NA,ordered=is.ordered(x)其中:levels 用来指定因子可能的水平(缺省值是向量x中互异的值);labels用来指定水平的名字;exclude表示从向量x中剔除的水平值;ordered是一个逻辑型选项用来指定因子的水平是否有次序 例:factor(1
6、:3,levels=1:5)factor(1:3,labels=c(A,B,C)9ppt课件矩阵矩阵:一个矩阵实际上是有一个附加属性(维数dim)的向量,维数为一个长度为2的向量,用来指定矩阵的行数和列数。matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)其中:选项byrow表示数据给出的值是要按列填充(缺省值)还是按行填充(如果为TRUE)。可以通过选项dimnames给行列命名。例:matrix(data=5,nr=2,nc=2)matrix(1:6,2,3,byrow=TRUE)#byrow=F10ppt课件数据框数据框(Dat
7、a frame):数 据 框可以 由 函 数read.table 间接创建;也可以用函数data.frame创建。数据框中向量必须有相同的长度,若其中有一个比其它短,它将“循环”整数次填充。例:x-1:4;n-10;M-c(10,35)data.frame(x,n);data.frame(x,M)11ppt课件列表列表(List):列表可以用list函数创建,方法与创建数据框类似。它对其中包含的对象类型没有限制。例:x-1:4;y-2:4 L1-list(x,y);L2-list(A=x,B=y)L1;L212ppt课件下标访问象的数值:下标系统1.下标系统可以用来有效、灵活且有选择性地访问一
8、个对象中的元素;下标可以是数值型或逻辑型 例:x-1:5;x3;x3-202.下标本身也可以是一个数值型向量:例:i-c(1,3);xi3.如果x是一个矩阵或者数据框,第i 行第j 列的值可以通过xi,j来访问 例:x-matrix(1:6,2,3);x,3-21:22;x,3#返回向量;x,3,drop=FALSE#返回矩阵4.通过负数下标剔除一个或一些行或列 例:x,-1;x,-c(1,2)13ppt课件5.对于向量、矩阵和数组,可以用一个条件表达式作为下标访问元素值:例:x=5-20;xx=1-256.使用逻辑型下标的应用:例:选择可以被2整除的元素 x-rpois(40,lambda=
9、5);xx%2=0 循环逻辑值下标:x-1:40;s-c(FALSE,TRUE);xs下标访问象的数值:下标系统14ppt课件访问对象的名称1.names是一个对象元素的字符型标签,通常情况是可选属性,名称有多个种类(names,colnames,rownames,dimnames)例:x-1:3;names(x);names(x)-c(a,b,c);names(x);names(x)-NULL2.对于矩阵和数据框,colnames 和rownames 分别是列和行的标签。例:X-matrix(1:4,2);rownames(X)-c(a,b);colnames(X)-c(“c,d);X3.对
10、于矩阵和数据框,colnames和rownames 分别为列和行的标签例:X-matrix(1:4,2);rownames(X)-c(a,b);colnames(X)-c(c,d);X;dimnames(X)#dimnames 返回包含两个名称向量的列表15ppt课件3种有用的数据编辑器1.使用一个类似于电子表格的图形编辑器去编辑一个“数据”对象例:x-matrix(1:4,2)data.entry(x)fix(x)edit(x)16ppt课件数学运算1.函数c:用来连接列在圆括号中的对象例:c(1:5,seq(10,11,0.2)2.向量可进行常规算术运算例:x-1:4;y-rep(1,4)
11、;z-x+y;z3.不同长度向量可相加,最短向量将循环使用例:x-1:4;y-1:2;z-x+y;z4.对于一个向量中所有的元素加(或乘)相同的数值例:x-1:4;a-10;z-a*x;z17ppt课件常用运算函数18ppt课件常用运算函数19ppt课件常用运算函数20ppt课件矩阵计算1.合并向量或矩阵例:m1-matrix(1,nr=2,nc=2);m2-matrix(2,nr=2,nc=2);rbind(m1,m2);cbind(m1,m2)2.矩阵乘积的运算例:rbind(m1,m2)%*%cbind(m1,m2)3.矩阵的转置例:n1-matrix(1:4,nr=2,nc=2);t(
12、n1)4.提取或修正一个矩阵的对角元例:diag(n1);diag(n1)-10;v-c(10,20,30);diag(v)5.矩阵求逆:solve(n1)6.矩阵分解:qr(n1)7.特征值和特征向量:eigen(n1)8.奇异值分解svd(n1)21ppt课件R绘图绘图函数:高级绘图函数创建一个新图形,低级绘图函数在现存图形上添加元素。绘图参数控制绘图选项,可以使用缺省值或者用函数par修改例:x=1:10;y=rep(10,10);plot(x,y)#高级绘图函数 abline(h=10)#低级绘图函数 abline(h=10,col=“red”,lty=2,lwd=3)#打开一个新绘图
13、窗口:windows()22ppt课件高级绘图函数23ppt课件高级绘图函数24ppt课件高级绘图函数25ppt课件部分绘图函数具有的共性选项及其缺省值 add=FALSE 如果是TRUE,叠加图形到前一个图上(如果有的话)axes=TRUE 如果是FALSE,不绘制轴与边框 type=p 指定图形的类型,p:点,l:线,b:点连线,o:同上,但是线在点上,h:垂直线,s:阶梯式,垂直线顶端显示数据,S:同上,但是在垂直线底端显示数据 xlim=,ylim=指 定 轴 的 上 下 限,例 如xlim=c(1,10)或者xlim=range(x)xlab=,ylab=坐标轴的标签,必须是字符型值
14、 main=主标题,必须是字符型值 sub=副标题(用小字体)26ppt课件低级绘图命令side=1 图正上方,side=2图左边,side=3图下方,side=4图右边用length=?来指定箭头的大小27ppt课件低级绘图命令28ppt课件绘图参数29ppt课件绘图参数30ppt课件绘图参数在plot方法所生成图上画圆。例:x=rnorm(10)y=rnorm(10)plot(x,y)#指定在原点生成大小为4,背景色为黄色的圆points(0,0,pch=21,cex=4,bg=yellow)#指定生成大小为4的“*”points(1,-1,pch=*,cex=4)31ppt课件R的统计分
15、析几乎所有函数都采用一样的符号。公式典型形式是ymodel,其中y为响应变量,model 为一些元素项的集合而且要为其中一些项估计参数。这些元素项通过一些有特殊涵义的运算符连接。32ppt课件R函数运算连接符a+b a 和b的相加效应X 如 果 X 是 一 个 矩 阵,这 将 反 映 各 列 的 相 加 效 应,即,1+X,2+.+X,ncol(X);还可通过索引向量选择特定列进行分析(如,X,2:4)a:b a和b的交互效应a*b 相加和交互效应(等价于a+b+a:b)poly(a,n)a的n价多项式n 包 含 所 有 的 直 到n阶 的 交 互 作 用,即(a+b+c)2 等 价于 a+b
16、+c+a:b+a:c+b:cb%in%a b 和a的嵌套分类设计(等价于a+a:b,或者a/b)-b 去掉因子b的影响,如:(a+b+c)2-a:b 等价于a+b+c+a:c+b:c-1 yx-1 表 示 通 过 原 点 的 线 性 回 归(等 价 于 yx+0 或者0+yx)1 y1拟合一个没有因子影响的模型(仅仅是截距)offset(.)向 模 型 中 增 加 一 个 影 响 因 子 但 不 估 计 任 何 参 数 (如,offset(3*x)33ppt课件泛型函数R统计函数常常返回一个类名与函数名相同的对象(如,aov 返回类“aov”的对象,lm 返回类“lm”的对象)。我们用来解析结果的函数对特定的类对象有特定的行为。这些函数被称为泛型。34ppt课件泛函数的典型使用方式为:y=rnorm(100);x=rpois(100,2)mod-lm(y x);df.residual(mod)泛型函数35ppt课件R循环语句for(i in 1:length(x)yi-0.if(xi=b)yi minimum).R循环语句37ppt课件下课了,休息吧!38ppt课件