R语言基本数据结构经典行业信息

上传人:工**** 文档编号:570131565 上传时间:2024-08-02 格式:PPT 页数:54 大小:1.02MB
返回 下载 相关 举报
R语言基本数据结构经典行业信息_第1页
第1页 / 共54页
R语言基本数据结构经典行业信息_第2页
第2页 / 共54页
R语言基本数据结构经典行业信息_第3页
第3页 / 共54页
R语言基本数据结构经典行业信息_第4页
第4页 / 共54页
R语言基本数据结构经典行业信息_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《R语言基本数据结构经典行业信息》由会员分享,可在线阅读,更多相关《R语言基本数据结构经典行业信息(54页珍藏版)》请在金锄头文库上搜索。

1、第二讲R语言的基本数据结构1学习课件NameIDTeam.NumDutyGrade1Grade2Grade3Grade4Grade5Wang N2007091captainNANANANANATang MJ2007201memberNANANANANA作业1:按下面表格的形式生成本组信息的数据框,并提交原程序.Name为字符型、ID为数字型、Team.Num为分组因子、Duty为分组因子、Grade1-5为数值型2学习课件Base:is.thingsBase:recursionGraphics:HersheyGraphics:JapaneseGraphics:graphicsGraphics:

2、imageGraphics:perspGraphics:plotmathLattice:intervalsLattice:labelsLattice:latticeLattice:panelStats:glm.vrStats:lm.glmStats:nlmStats:smooth作业2:利用sample函数设计算法,把下面16个demo公平地分配给15个组,并提交原程序3学习课件一、R语言的对象所有在R语言中可操作的各种数据及各种表达式等都叫R语言的操作对象。对象命名:1、对象的名字必须是以一个字母开头(AZ或az),中间可以包含字母,数字(09),点(.)及下划线(_);2、R对对象的名字区

3、分大小写;3、避免用R的各种包中的既有对象名来对对象命名:例如,if、for、pi等3、可以通过输入一个对象的名字来显示其内容,例如,一个名为n的对象,其内容是数值10:n1104学习课件对象的产生、查询及删除1、赋值:name-”Carmen”;n1-10;n2-100;m1ls()ls(pat=“m”)ls.str()/将会展示内存中所有对象的详细信息5学习课件3、删除:rm(x)删除内存中所有对象:rm(list=ls()注:ls()函数中的一些选项同样可以运用到rm中来6学习课件对象的基本属性每个对象包含很多基本属性,常用的有对象的类型、存储类型、对象模式、对象长度、对象维度、对象名称

4、等。数值型Numeric 如100, 0, -4.335字符型Character 如“China”逻辑型Logical 如TRUE, FALSE因子型Factor 表示不同类别复数型Complex 如:2 + 3i对象的类型:mode(object)对象的长度:length(object);fruitnames(fruit)mode(fruit)1numericlength(fruit)147学习课件对象属性的转换常用对象转化函数as.character()#转换为字符型as.numeric()#转换为数值型as.logical()#转换为逻辑型plex()#转化为复数型as.factor()

5、#转化为因子型methods(as)#methods包中的全部转换函数methods(is)#methods包中全部对象类型判别函数8学习课件二、数据的创建9学习课件三、数值向量1、规则序列xxyyx-seq(1,5,by=0.5)#序列的起点、终点、步长xxrep(1,time=30)#创建一个所有元素都相同的向量sequence(4:5)#创建一系列联系的整数序列112341234510学习课件gl(k,n)/k是水平数,n是每个水平重复的次数,有两个选项:length用来指定产生数据的个数,labels用来指定每个水平因子的名字gl(3,5)gl(3,5.4)#?11学习课件2、随机序列

6、R可以产生多种不同分布下的随机数序列。sample(1:40,5)125322359sample(c(H,T),10,replace=T)1HHTHHTHHHH“12学习课件分布函数的形式rfunc(n,p1,p2,.),其中func指概率分布函数,n为生成数据的个数,p1,p2,.是分布的参数数值。如:rnorm#随机产生正态分布的数据rnorm(100,2,5)#mean=1,sd=5随机分布函数rfuncr:random密度函数dfuncd:density累计概率密度函数pfuncp:probability分位数函数qfuncq:quantile3、分布函数13学习课件plot(rnor

7、m(100,2,5)14学习课件xplot(x,dnorm(x),type=l)15学习课件逻辑向量逻辑向量包含TRUE、FALSE和NA(notavailabe)逻辑向量可以同数值向量一起运算:TRUE=1,FALSE=0SequenceNumLogicvector2.5logicvector错误:找不到对象logicvectorLogicvector1FALSEFALSETRUETRUE16学习课件c(1:3,NA)-NaDataNaData1123NANaData8NaData1123NANANANA8is.na(NaData)1FALSEFALSEFALSETRUETRUETRUETR

8、UEFALSE17学习课件字符向量可以用两个单引号()或两个双引号(“)去界定字符向量“/”用来识别字符串中包含的()或(“)例子:UserInforUserInfor1nameuserspassworde-mail“labslabs1X1Y2X3Y4X5Y6X7Y8X9Y1018学习课件复数向量zz11.0464457+1.4921546i-0.0857576+0.6500323i-0.4077956+0.7363948i41.2992962+1.0821262i-1.3359859-2.2430534i1.0756972+1.4531898i71.1084957+0.6604677i1.2

9、716703+0.4288688i0.2792403+0.4181003i10-1.0414731-2.2300299izzzz.shiftzz.shift1-0.1-0.9i-0.2-0.8i-0.3-0.7i-0.4-0.6i-0.1-0.5i-0.2-0.4i-0.3-0.3i8-0.4-0.2i-0.1-0.1i19学习课件五、分组因子R语言可以将一套数据中相同分类的数据进行分组,所用组别对象称为分组因子可以用factor()函数生成一个分组因子分组因子可以方便地对分组数据做相应计算,如:计算平均值、总和或按某种函数形式例子:factor(sample(letters,10,repla

10、ce=T),levels=letters)1gbwjczodpqLevels:abcdefghijklmnopqrstuvwxyz20学习课件六、数组及矩阵数组是带多个下标的、类型相同的元素的多维数据集合,类型有数值型、字符型、逻辑型、复数型等矩阵为二维数组一维数组并不等效为向量除了类型和长度等基本属性外,数组还有一个特殊属性叫做维数向量,用dim()定义21学习课件数组定义FirstArrayFirstArray1123456789101112131415161718192021222324dim(FirstArray)FirstArray#数组的填充规则:越靠前的下标变化越快;#越靠后的下

11、标变化越慢,1,1,2,3,41,147102,258113,36912,2,1,2,3,41,131619222,141720233,15182124#等价于FirstArrayPricesPrices64M128M256Mvender1202276vender2245687Prices,c(“64M”,“256M”)#通过维名访问数组64M256Mvender12076vender2248723学习课件向量,数组的混合运算规则:1、 表达式中各元素匹配时,总是从左到右。2、 在进行计算时比较短的向量会扩展数据以适应最大数量元素的操作数。扩展数据的基本规则为循环地从第一个元素开始填充所需要的

12、数据。3、所有的数组必须具有相同的dim属性,否则返回一个错误。4、任何一个向量的操作结果的长度大于数组间操作结果的长度时,R语言会产生错误。5、 如果数组间操作无误,那么计算结果也是一个相同维度的数组。24学习课件a1a2a1,1,2,31,1592,26103,37114,4812a2,1,2,31,1472,2583,369a1+a2错误于a1+a2:非整合陈列a2a2,1,2,31,1592,2613,3724,483a1+a2,1,2,31,210182,412113,614134,81615a1*a2,1,2,31,125812,436103,949224,166436不同dim属

13、性相同dim属性不同dim属性相同dim属性25学习课件a3a3,1,2,31,123a2+a3错误于a2+a3:非整合陈列一维数组并不等效为向量a4a41123a4+a2,1,2,31,27122,4923,6844,5106向量与数组运算a5a4+a512465798警告信息:Ina4+a5:长的对象长度不是短的对象长度的整倍数不同长度的向量运算a6a6+a2错误:dimsproduct12与对象长度13不匹配此外:警告信息:Ina6+a2:长的对象长度不是短的对象长度的整倍数a7a7+a2错误:dimsproduct12与对象长度24不匹配一维数组并不等效为向量不同长度的向量运算26学习

14、课件两个数组的外积ABA,1,21,132,24B,1,2,3,41,147102,258113,36912B%o%A,1,1,1,2,3,41,147102,258113,36912,2,1,1,2,3,41,2814202,41016223,6121824,1,2,1,2,3,41,31221302,61524333,9182736,2,2,1,2,3,41,41628402,82032443,12243648ABxx,1,2,31,1352,246xtxt,1,21,122,343,5628学习课件xx,1,1,2,31,1352,246,2,1,2,31,79112,81012,3,1

15、,2,31,1315172,141618,4,1,2,31,1921232,202224xtxt,1,1,21,122,343,56,2,1,21,782,9103,1112,3,1,21,13142,15163,1718,4,1,21,19202,21223,232429学习课件七、矩阵#nrow定义行数,ncol定义列数,dimnames定义行和列的名称,byrow定义矩阵的填充顺序,为T时按行填充,为F时按列填充mdatmdatC.1C.2C.3row1123row2111213t(mdat)row1row2C.1111C.2212C.3313xtxtrow1row2C.1111C.22

16、12C.3313转置转置t(mdat)row1row2C.1111C.2212C.3313xtxtrow1row2C.1111C.2212C.3313转置转置30学习课件a1a2a1,1,2,31,1352,246a2,1,2,31,1472,2583,369a1%*%a2,1,2,31,2249762,2864100a1%*%a1错误于a1%*%a1:非整合参数a2%*%a1错误于a2%*%a1:非整合参数两个矩阵内积31学习课件CoefficientResultsolve(Coefficient,Result)#sovle()返回线性方程组行列式结果12-3#a=2,b=-3求解线性方程组

17、:3a-2b=122a+b=1solve(Coefficient)#求矩阵Coefficient的逆,1,21,0.14285710.28571432,-0.28571430.428571432学习课件矩阵计算函数矩阵计算函数练习2.1熟练掌握矩阵计算的有关函数33学习课件数组矩阵合并函数rbind()把参数变量按行拼成一个大矩阵,两个数组(或向量)的列数必须相等函数cbind()把参数变量按列拼成一个大矩阵,两个数组(或向量)的行数必须相等34学习课件a1a2a1,1,2,31,1352,246a2,1,2,31,1472,2583,369rbind(a1,a2),1,2,31,1352,2

18、463,1474,2585,369cbind(a1,a2)错误于cbind(a1,a2):矩阵的行数必需相符(见arg2)t(a1),1,21,122,343,56a1cbind(a1,a2),1,2,3,4,51,121472,342583,5636935学习课件八、数据分割与选取向量索引向量索引Xn#第n个元素X-n#除了第n个元素外的XX1:n#前n个元素X-(1:n)#第n+1至最后的元素Xc(1,4,2)#指定下标的元素X“name”#名为name的元素XX3#所有大于3的元素XX3&XXnames(X)Xabcdefghi123456789X6f6X2:6bcdef23456X-3

19、abdefghi12456789X-(5:9)abcd1234X-c(5,9,2)acdfgh134678XX5fghi6789XX5&XXc(c,g,d)cgd374XX%in%letters5:13namedinteger(0)XX%in%5:13efghi56789sstrsstrsstr%in%c(letters,LETTERS)1cBca例子37学习课件Xi,j#下标为(i,j)的元素Xi,#第i列X,j#第j列X,c(1,3)#第1,3列X“name”,#名为”name”的行数组具有类似的数据分割与选取方法数组具有类似的数据分割与选取方法矩阵索引练习2.2熟练掌握数据分割与选取的方

20、法38学习课件XXDEFGa1234b5678c9101112X2,317X2,DEFG5678X,4abc4812X,c(1,3)DFa13b57c911Xa,DEFG123439学习课件九、数据列表数据列表(list)是一组数据元素的集合,这些数据元素可以是不同的数据结构(dim属性,数据类型等)list()函数可以组合任意对象40学习课件FamilyInfoFamilyInfo$hostname1joe$wife1rose$no.children13$child.ages1137FamilyInfo$wife#通过元素的名字来访问1rose“FamilyInfo3#通过元素的编号来访问$

21、no.children13FamilyInfo313例子41学习课件数据列表操作长度扩展length(FamilyInfo)14FamilyInfo5FamilyInfo$hostname1joe$wife1rose$no.children13$child.ages11375110thF,HongXingBuilding,No.100,JainYeRoad42学习课件数据列表合并FamilyBirthdayc(FamilyInfo,FamilyBirthday)-Family#函数c()可以连接数据列表Family$hostname1joe$wife1rose$no.children13$ch

22、ild.ages11375110thF,HongXingBuilding,No.100,JainYeRoad$hostbirthday11979/10/08$wifebirthday11973/07/0943学习课件数据框(dataframe)是一个属于data.frame类的列表。不过,对于可能属于数据框的列表对象有下面一些限制条件,1、分量必须是向量(数值,字符,逻辑),因子,数值矩阵,列表或者其他数据框;2、矩阵,列表和数据框为新的数据框提供了尽可能多的变量,因为它们各自拥有列,元素或者变量;3、数值向量,逻辑值,因子保持原有格式,而字符向量会被强制转换成因子并且它的水平就是向量中出现的

23、独立值;4、在数据框中以变量形式出现的向量结构必须长度一致,矩阵结构必须有一样的行数.数据框常常会被看作是一个由不同模式和属性的列构成的矩阵。它能以矩阵形式出现,行列可以通过矩阵的索引习惯访问。十、数据框44学习课件创建数据框L3ddxyfac111C212A313B414C515A616B717B818B919B10110Ad1x112131415161718191101d111111111111mode(d1)1listmode(d1)1numericlength(d1)11length(d1)110d231345学习课件ddxyfacHT111BT212AH313BH414AT515CT

24、616AT717BH818CT919CH10110ATrbind(class=sapply(d,class),mode=sapply(d,mode)xyfacHTclassnumericnumericfactorfactormodenumericnumericnumericnumeric46学习课件ddxyfacHT111AH212AT313CT414AT515BH616CH717CT818AH919AT10110CHrbind(class=sapply(d,class),mode=sapply(d,mode)xyfacHTclassnumericnumericAsIsfactormodenu

25、mericnumericcharacternumericd31AACABCCAACd41HTTTHHTHTHLevels:HT函数I():Changetheclassofanobjecttoindicatethatitshouldbetreatedasis47学习课件十一、数据运算48学习课件49学习课件练习2.3熟练掌握数据运算的有关符号和函数50学习课件十二、数据的选择与操作51学习课件十三、高级数据处理对于向量,可以用函数直接对其进行计算对于数组和矩阵,如果需要对其中一维(或若干维)进行某种计算时,则可以用apply()函数自定义数组的操作.apply(X,MARGIN,FUN,)#X给

26、定数组,MARGIN指定维数,FUN自定义计算函数。52学习课件#FUN为R自带包中的函数XX,1,2,3,4,5,61,1591317212,26101418223,37111519234,4812162024apply(X,MARGIN=1,sum)166727884apply(X,MARGIN=2,sum)1102642587490#FUN为自定义函数fffunction(V)d=sd(V)/mean(V);return(d);apply(X,MARGIN=2,f)10.516397780.198614530.122951850.089034100.069783480.05737753apply(X,MARGIN=1,f)10.68030130.62360960.57563960.5345225例子53学习课件lapply(X,FUN)#应用FUN到列表X的每个元素tapply(X,INDEX,FUN)#根据X的索引(INDEX)对不完全的数列应用FUNsapply()#同lapply54学习课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号