R语言(第一课).doc_第1页
R语言(第一课).doc_第2页
R语言(第一课).doc_第3页
R语言(第一课).doc_第4页
R语言(第一课).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

R语言基础篇简介:R语言在英文里写成R或R-project,最开始的时候,国内将R语言翻译成R软件,后来觉得不妥,翻译成R语言或R或环境,R语言是S语言的一种实现。S语言是国外学者开发的用来做数据探索、统计分析、作图的语言。R软件是一套完整的数据处理、计算和制图软件。用户可通过R软件的网站(http:/www.r_)获得最新的R软件信息,并得到最新的应用统计软件包。说R是统计软件,还不如说是数学计算软件,因为它提供了若干统计程序包,各种数学计算、统计计算函数,包含了很多程序包。国外好多大学学生,学的统计工具都是R语言,而国内最早应用它的大学是清华大学,学生为了参加世界数学建模大赛,目前只有中国人大、广东暨南大学统计专业才有教授R语言课程,人大肖凯老师在网上讲授R语言课程目前比较畅销。R语言是一种用于开源免费的用于数据分析的计算环境,是用于统计分析、绘图的语言和操作环境,是一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言参考书:R语言实用教程,薛毅,陈立萍编著,清华大学出版社,2014年10月第一版。1.下载安装R软件:R的网站:,进入网站后出现画面:第一步:点击“CRAN”链接第二步:选择镜像china“/CRAN/ ”第三步:选择“Download R for Windows”根据你的操作系统选择第四步:选择“base”第五步:选择“Download R 3.2.0 for Windows”下载安装.完成.2. R基础(用help(), 或 ? 求帮助, getwd()获得R的当前工作目录,#是注释符)1. R有两个主要概念:对象和函数,用赋值运算符赋给对象内容。 赋值运算符赋:尖括号和减号- 组成:- # R变量#x - 945xy - 39yy - 43 #刷新前面y的内容yz - 5w - z2wi - (z*2 + 45)/2 #用赋值表达式赋给对象内容i(34 + 90)/12.5 #只想知道结果 ls() #知道当前对象rm(y) #删除当前对象,释放空间rm(z,w,i).完.# R向量#对象都有模式和长度属性,数据类型有:字符串、数值型、逻辑型、复数型。用小写c加括号建立向量,数值向量可以做四则运算v c(1,1,4,5) #向量做比较,产生的是逻辑向量F,T,F,F一个向量的所有元素必须具有相同的模式,即数据类型,否则强制转换v - c(4,7,23.5,76.2,80,rrt) #执行强制转换,字符值用单引号或双引号vu - c(4,6,NA,2) # NA代表缺失值uk - c(T,F,NA,TRUE)kv2 #向量的某个元素 v1 - hello vx - vector() #创建空向量x3 - 45xlength(x)x10x5 - 4xv - c(45,243,78,343,445,44,56,77)vv - c(v5,v7) #创建向量子集v.完.# Vectorization R向量化#函数的向量化,函数可以直接对向量的每个元素进行操作v - c(4,7,23.5,76.2,80)x - sqrt(v) #算术平方根xv1 - c(4,6,87)v2 - c(34,32,12)v1+v2v1 - c(4,6,8,24)v2 - c(10,2,4) #重复循环短的向量v1+v2v1 - c(4,6,8,24)2*v1ages-c(li=33,zhang=29,liu=18) #带字符下标的向量names(ages) #给向量各元素起名字ages“liu”或agesliu或ages3 #取向量某元素fruit-c(5,10,1,20)names(fruit)-c(orange,banana,apple,peach) #给向量取名字fruit与数值向量有关的函数max(x) # 求向量最大值min(x) # 求向量最小值range(x) # 求向量的范围sum(x) # 求向量各分量之和prod(x) # 求向量各分量之积length(x) # 求向量各分量的个数(维数).完.# Factors 因子#因子处理分类数据,数据集中有取值个数固定的名义变量,因子特别有用,因子用水平来表示所有可能的数值。factor(x=character,levels,labels=levels,exclude=NA,ordered=is.ordered(x)X为数据向量,也是被转换成因子的向量,levels为可选向量,表示因子水平,当此参数取默认值时,由x元素中的不同值来确定,labels指定各水平名称,默认时取levels值,exclude为从x中删除的水平值,默认值NA,ordered为逻辑变量,取TURE为水平有次序,否则FALSE无次序。g - c(f,m,m,m,f,m,f,m,f,f) #有10个人的性别向量gg - factor(g) #把这个向量转换为因子g gg - factor(c(m,m,m,m,m),levels=c(f,m) #有5个男性,要与g有相同的水平(数值个数) gggg - factor(c(m,m,m,m,m) #否则只有1个水平个数ggtable(g) # table()计算每个值的发生次数table(gg)is.factor(g) #查看对象是否为因子as.factor() #强制转化为因子levels(g) #查看因子的水平 g - c(1,2,3,2,3,1,1,1) g - factor(g) levels(g)-c(I,II,III) #为因子的水平赋值 gg - factor(c(f,m,m,m,f,m,f,m,f,f) a - factor(c(adult,adult,juvenile,juvenile,adult,adult, adult,juvenile,adult,juvenile)t - table(a) #统计各因子水平出现的频数t - table(g) t - table(a,g) # table()用于获取多个因子的交叉表margin.table(t,1) # a的水平数margin.table(t,2) # g的水平数prop.table(t,1) # 按行算总数,table(a,g)阵中的元素与总数比prop.table(t,2) # 按列算总数,table(a,g)阵中的元素与总数比prop.table(t) # 各元素总和算总数,table(a,g)阵中的元素与总数比# 生成序列seq(),rep() ,gl()#x - 1:100010:15-1 #冒号优先10:(15-1)5:0 #递减seq(-4,1,0.5) # seq()生成实数序列,步长0.5seq(from=1,to=5,length=4) # 生成4个数seq(from=1,to=5,length=2)seq(length=10,from=-2,by=0.2) #从-2开始生成10个数,步长0.2rep(5,10) # 生成10个5rep(hi,3)rep(1:2,3)rep(1:2,each=3)gl(k,n)生成带有因子的序列,k因子水平个数,n每个水平的重复数gl(3,5)gl(2,5,labels=c(female,male) # labels代表因子数值名称 rnorm(10) # 生成10个正态分布数# Indexing 数据子集#x 0 #结果是逻辑值xx0 #结果是数值型xx 5xx 40 & x 100xc(4,6) #提取所在向量位置的元素x1:3 #提取前3个y - c(1,4)xyx-1 #排除第1个x-c(4,6)x-(1:3)x-0 #所有元素赋予0值x-0# 矩阵和数组#矩阵:数组储存的是多维数据元素,矩阵是数组的特殊情况matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)参数data为数据向量,默认值为NA,当不输入该数据时,可生成一个初始矩阵,nrow为矩阵的行数,默认值为1,ncol为矩阵的列数,默认值为1,byrow为逻辑变量,当取值是TURE,矩阵按行放置,当取值是FALSE,矩阵按列放置,dimnames为矩阵的行和列的名称,用列表输入,默认为空。m - c(45,23,66,77,33,44,56,12,78,23) mdim(m) - c(2,5) #把向量组织为一个矩阵mm - matrix(c(45,23,66,77,33,44,56,12,78,23),2,5) #使用更简单的命令,按列添m - matrix(c(45,23,66,77,33,44,56,12,78,23),2,5,byrow=T) #按行添数mm2,3 #取矩阵元素m-2,1 #除去第2行,第一列所有元素m1,-c(3,5) #除去第3、5列,第一行所有元素m1,m,4#上面得到是向量m1,drop=F #得到是矩阵m,4,drop=Fcbind()、rbind()把矩阵分别按列、行结合起来m1 - matrix(c(45,23,66,77,33,44,56,12,78,23),2,5)m1cbind(c(4,76),m1,4) #把矩阵按列结合m2 - matrix(rep(10,20),4,5)m2m3 - rbind(m11,m23,) #把矩阵按行结合m3results - matrix(c(10,30,40,50,43,56,21,30),2,4,byrow=T)colnames(results) - c(1qrt,2qrt,3qrt,4qrt) #给矩阵列起名rownames(results) - c(store1,store2) #给矩阵行起名resultsresultsstore1,resultsstore2,c(1qrt,4qrt)m - matrix(c(45,23,66,77,33,44,56,12,78,23),2,5)m*3m1 - matrix(c(45,23,66,77,33,44),2,3)m2 - matrix(c(12,65,32,7,4,78),2,3)m1+m2#矩阵运算都是元素和元素的运算数组(Array):是多维的, 向量为一维数组,矩阵为二维数组。数组中的元素数据类型必须一致,建立数组方法:array(data=NA,dim=length(data),dimnames=NULL)参数data为数据向量,默认NA, dim为整数向量,表示各维长度,默认为data的长度,dimnames为各维名称,用列表形式给出,默认值为空。a - array(1:20,dim=c(4,5)ab - array(1:24,dim=c(3,4,2)bb1,3,2b1,2b3,4,bc(2,3),-2 # 取两行.完.列表list():不同元素可以不同数据类型,也可不同长度my.lst - list(stud.id=34453, =John, stud.marks=c(14.3,12,15,19)my.lstmy.lst$my.lst1my.lst1 #输出时不要列名my.lst3mode(my.lst)mode(my.lst1) #输出值的属性my.lst$stud.idnames(my.lst) #输出列表元素名称(属性)names(my.lst) - c(id,name,marks) #给列表元素命名my.lstmy.lst$s - c(Ana,Mike) #给列表添加元素my.lstlength(my.lst) #统计列表成分个数my.lst - my.lst-4 #删除列表成分other - list(age=19,sex=male)lst - c(my.lst,other)lstmy.lst - list(stud.id=34453, =John, stud.marks=c(14.3,12,15,19)my.lst$s - c(Ana,Mike)my.lstunlist(my.lst) #将列表转换成向量.完.数据框data.frame()类似与excel表的数据结构,每列的数据类型可以不一致,但长度必须一致,列相当于属性,行相当于样本。df- data.frame( Name=c(Alice,Becka,James,Jeffrey,John), Sex= c(F,F,M,M,M), Age=c(13,13,12,13,12), Height= c(56.5,65.3,57.3,62.5,59), Weight=c(84,98,83,84,99.5) )df与数据框有关的函数: as.data.frame() #将对象(矩阵、列表)强制转换 #成数据框(各成分必须满足数据框要求) is.data.frame() #判断对象是否为数据框 x-array(1:6,c(2,3) #如果矩阵原有列名,则为数据框列名,否则系统给出data.frame(x)数据框的调用:df1:2,3:5 dfHeightdf$Weight数据框的命名:names(df)#定义数据框的变量名rownames(df)- c(one,two,three,four,five) #定义数据框的各行名字attach()函数、with()函数 R语言主要通过数据框来输入和保存数据,attach()函数可以把数据框中的变量“连接”到内存中,便于数据框中数据的调用。它也可连接列表。attach(df)r-Height/Weightrdf$r-Height/Weight #把新变量赋值到数据框中dfdetach() #取消连接如果只做少量运算,也可用with()函数df$r-with(df, Height/Weight)lapply()函数和sapply()函数:对列表和数据框进行运算lapply(X,FUN,.)sapply(X,FUN,.,simplify=TURE,USE.NAMES=TURE)X为列表或数据框,FUN为指定的运算函数,两函数用法相同,一个返回列表,一个返回数据框。df- data.frame( Name=c(Alice,Becka,James,Jeffrey,John), Sex= c(F,F,M,M,M), Age=c(13,13,12,13,12), Height= c(56.5,65.3,57.3,62.5,59), Weight=c(84,98,83,84,99.5) )

温馨提示

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

评论

0/150

提交评论