版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二讲 R语言的基本数据结构NameIDTeam.NumDutyGrade1Grade2Grade3Grade4Grade5Wang N2007091 captainNANANANANATang MJ2007201 memberNANANANANA作业1:按下面表格的形式生成本组信息的数据框,并提交原程序.Name为字符型、ID为数字型、Team.Num为分组因子、Duty为分组因子、Grade1-5为数值型Base: is.thingsBase: recursionGraphics: HersheyGraphics: JapaneseGraphics: graphicsGraphics: i
2、mageGraphics: perspGraphics: plotmathLattice: intervalsLattice: labelsLattice: latticeLattice: panelStats: glm.vrStats: lm.glmStats: nlmStats: smooth作业2:利用sample函数设计算法,把下面16个demo公平地分配给15个组,并提交原程序一、R语言的对象 所有在R语言中可操作的各种数据及各种表达式等都叫R语言的操作对象。对象命名:1、对象的名字必须是以一个字母开头(AZ 或az),中间可以包含字母,数字(09),点(.)及下划线(_);2、R对
3、对象的名字区分大小写;3、避免用R的各种包中的既有对象名来对对象命名:例如,if、for、pi等3、可以通过输入一个对象的名字来显示其内容,例如,一个名为n的对象,其内容是数值10: n 1 10对象的产生、查询及删除1、赋值:name-”Carmen”;n1-10;n2-100;m1ls() ls(pat=“m”) ls.str() /将会展示内存中所有对象的详细信息 3、删除:rm(x)删除内存中所有对象:rm(list=ls()注:ls()函数中的一些选项同样可以运用到 rm中来对象的基本属性 每个对象包含很多基本属性,常用的有对象的类型、存储类型、对象模式、对象长度、对象维度、对象名称
4、等。数值型Numeric 如 100, 0, -4.335字符型Character 如“China”逻辑型Logical 如TRUE, FALSE因子型Factor 表示不同类别复数型Complex 如:2 + 3i对象的类型:mode(object)对象的长度:length(object); fruit names(fruit) mode(fruit)1 numeric length(fruit)1 4对象属性的转换 常用对象转化函数as.character() #转换为字符型as.numeric() #转换为数值型as.logical() #转换为逻辑型plex() #转化为复数型as.f
5、actor() #转化为因子型methods(as) #methods包中的全部转换函数methods(is) #methods包中全部对象类型判别函数二、数据的创建三、数值向量1、规则序列xxyyx-seq(1,5,by=0.5) #序列的起点、终点、步长 xxrep(1,time=30) #创建一个所有元素都相同的向量sequence(4:5) #创建一系列联系的整数序列 1 1 2 3 4 1 2 3 4 5gl(k,n) /k是水平数,n是每个水平重复的次数,有两个选项:length用来指定产生数据的个数,labels用来指定每个水平因子的名字gl(3,5)gl(3,5.4) #?(1
6、,1,1,1,1,2,2,2,2,2,3,3,3,3,3)2、随机序列 R可以产生多种不同分布下的随机数序列。sample(1:40,5)1 25 32 2 35 9sample(c(H,T),10,replace=T) 1 H H T H H T H H H H“ 分布函数的形式rfunc(n,p1,p2,.),其中func指概率分布函数,n为生成数据的个数,p1, p2, . . . 是分布的参数数值。 如:rnorm #随机产生正态分布的数据 rnorm(100,2,5) #mean=1,sd=5 随机分布函数rfunc r:random 密度函数dfunc d:density 累计概率
7、密度函数pfunc p:probability 分位数函数qfunc q:quantile 3、分布函数 plot(rnorm(100,2,5) x plot(x,dnorm(x),type=l)逻辑向量 逻辑向量包含TRUE、FALSE和NA(not availabe) 逻辑向量可以同数值向量一起运算:TRUE=1,FALSE=0 SequenceNum Logicvector2.5 logicvector 错误: 找不到对象logicvector Logicvector 1 FALSE FALSE TRUE TRUE c(1:3,NA)-NaData NaData 1 1 2 3 NA N
8、aData8 NaData 1 1 2 3 NA NA NA NA 8 is.na(NaData) 1 FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE字符向量 可以用两个单引号()或两个双引号(“)去界定字符向量 “/”用来识别字符串中包含的()或(“) 例子: UserInfor UserInfor1 name users password e-mail“ labs labs 1 X1 Y2 X3 Y4 X5 Y6 X7 Y8 X9 Y10 复数向量 z z 1 1.0464457+1.4921546i -0.0857576+0.6500323i -0
9、.4077956+0.7363948i 4 1.2992962+1.0821262i -1.3359859-2.2430534i 1.0756972+1.4531898i 7 1.1084957+0.6604677i 1.2716703+0.4288688i 0.2792403+0.4181003i10 -1.0414731-2.2300299i zz zz.shift zz.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.1i五、分组因子 R语言可以将
10、一套数据中相同分类的数据进行分组,所用组别对象称为分组因子 可以用factor()函数生成一个分组因子 分组因子可以方便地对分组数据做相应计算,如:计算平均值、总和或按某种函数形式 例子: factor(sample(letters,10,replace=T),levels=letters) 1 g b w j c z o d p q Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z六、数组及矩阵 数组是带多个下标的、类型相同的元素的多维数据集合,类型有数值型、字符型、逻辑型、复数型等 矩阵为二维数组 一维数组并不等效为向量
11、 除了类型和长度等基本属性外,数组还有一个特殊属性叫做维数向量,用dim()定义数组定义FirstArray FirstArray 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 dim(FirstArray)FirstArray #数组的填充规则:越靠前的下标变化越快; #越靠 后的下标变化越慢, , 1 ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12, , 2 ,1 ,2 ,3 ,41, 13 16 19 222, 14 17 20 233, 15 18 21 24#
12、等价于 FirstArrayPrices Prices 64M 128M 256Mvender1 20 22 76vender2 24 56 87 Prices,c(“64M”,“256M”) #通过维名访问数组 64M 256Mvender1 20 76vender2 24 87向量,数组的混合运算规则: 1、 表达式中各元素匹配时,总是从左到右。 2、 在进行计算时比较短的向量会扩展数据以适应最大数量元素的操作数。扩展数据的基本规则为循环地从第一个元素开始填充所需要的数据。 3、所有的数组必须具有相同的dim属性,否则返回一个错误。 4、任何一个向量的操作结果的长度大于数组间操作结果的长度
13、时,R语言会产生错误。 5、 如果数组间操作无误,那么计算结果也是一个相同维度的数组。 a1 a2 a1 ,1 ,2 ,31, 1 5 92, 2 6 103, 3 7 114, 4 8 12 a2 ,1 ,2 ,31, 1 4 72, 2 5 83, 3 6 9 a1+a2错误于a1 + a2 : 非整合陈列 a2 a2 ,1 ,2 ,31, 1 5 92, 2 6 13, 3 7 24, 4 8 3 a1+a2 ,1 ,2 ,31, 2 10 182, 4 12 113, 6 14 134, 8 16 15 a1*a2 ,1 ,2 ,31, 1 25 812, 4 36 103, 9 49
14、 224, 16 64 36不同dim属性相同dim属性不同dim属性相同dim属性 a3 a3 ,1 ,2 ,31, 1 2 3 a2+a3错误于a2 + a3 : 非整合陈列一维数组并不等效为向量 a4 a41 1 2 3 a4+a2 ,1 ,2 ,31, 2 7 122, 4 9 23, 6 8 44, 5 10 6向量与数组运算 a5 a4+a51 2 4 6 5 7 9 8警告信息:In a4 + a5 : 长的对象长度不是短的对象长度的整倍数不同长度的向量运算 a6 a6+a2错误: dims product 12与对象长度13不匹配此外: 警告信息:In a6 + a2 : 长的
15、对象长度不是短的对象长度的整倍数 a7 a7+a2错误: dims product 12与对象长度24不匹配一维数组并不等效为向量不同长度的向量运算两个数组的外积 A B A ,1 ,21, 1 32, 2 4 B ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12 B%o%A, , 1, 1 ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12, , 2, 1 ,1 ,2 ,3 ,41, 2 8 14 202, 4 10 16 223, 6 12 18 24, , 1, 2 ,1 ,2 ,3 ,41, 3 12 21
16、302, 6 15 24 333, 9 18 27 36, , 2, 2 ,1 ,2 ,3 ,41, 4 16 28 402, 8 20 32 443, 12 24 36 48 AB x x ,1 ,2 ,31, 1 3 52, 2 4 6 xt xt ,1 ,21, 1 22, 3 43, 5 6 x x, , 1 ,1 ,2 ,31, 1 3 52, 2 4 6, , 2 ,1 ,2 ,31, 7 9 112, 8 10 12, , 3 ,1 ,2 ,31, 13 15 172, 14 16 18, , 4 ,1 ,2 ,31, 19 21 232, 20 22 24 xt xt, , 1
17、 ,1 ,21, 1 22, 3 43, 5 6, , 2 ,1 ,21, 7 82, 9 103, 11 12, , 3 ,1 ,21, 13 142, 15 163, 17 18, , 4 ,1 ,21, 19 202, 21 223, 23 24七、矩阵# nrow定义行数,ncol定义列数,dimnames定义行和列的名称,byrow定义矩阵的填充顺序,为T时按行填充,为F时按列填充mdat mdat C.1 C.2 C.3row1 1 2 3row2 11 12 13 t(mdat) row1 row2C.1 1 11C.2 2 12C.3 3 13 xt xt row1 row2C
18、.1 1 11C.2 2 12C.3 3 13转置转置 t(mdat) row1 row2C.1 1 11C.2 2 12C.3 3 13 xt xt row1 row2C.1 1 11C.2 2 12C.3 3 13转置转置 a1 a2 a1 ,1 ,2 ,31, 1 3 52, 2 4 6 a2 ,1 ,2 ,31, 1 4 72, 2 5 83, 3 6 9 a1%*%a2 ,1 ,2 ,31, 22 49 762, 28 64 100 a1%*%a1错误于a1 %*% a1 : 非整合参数 a2%*%a1错误于a2 %*% a1 : 非整合参数两个矩阵内积 Coefficient Re
19、sult solve(Coefficient,Result) #sovle()返回线性方程组行列式结果1 2 -3 #a=2,b=-3求解线性方程组:3a-2b=122a+b=1 solve(Coefficient) #求矩阵Coefficient的逆 ,1 ,21, 0.1428571 0.28571432, -0.2857143 0.4285714矩阵计算函数矩阵计算函数练习2.1熟练掌握矩阵计算的有关函数数组矩阵合并 函数rbind()把参数变量按行拼成一个大矩阵,两个数组(或向量)的列数必须相等 函数cbind()把参数变量按列拼成一个大矩阵,两个数组(或向量)的行数必须相等 a1 a
20、2 a1 ,1 ,2 ,31, 1 3 52, 2 4 6 a2 ,1 ,2 ,31, 1 4 72, 2 5 83, 3 6 9 rbind(a1,a2) ,1 ,2 ,31, 1 3 52, 2 4 63, 1 4 74, 2 5 85, 3 6 9 cbind(a1,a2)错误于cbind(a1, a2) : 矩阵的行数必需相符(见arg2) t(a1) ,1 ,21, 1 22, 3 43, 5 6 a1 cbind(a1,a2) ,1 ,2 ,3 ,4 ,51, 1 2 1 4 72, 3 4 2 5 83, 5 6 3 6 9八、数据分割与选取 向量索引向量索引Xn #第n个元素X
21、-n #除了第n个元素外的XX1:n #前n个元素X-(1:n) #第n+1至最后的元素Xc(1,4,2) #指定下标的元素X“name” #名为name的元素XX3 #所有大于3的元素XX3 & X X names(X) Xa b c d e f g h i 1 2 3 4 5 6 7 8 9 X6f 6 X2:6b c d e f 2 3 4 5 6 X-3a b d e f g h i 1 2 4 5 6 7 8 9 X-(5:9)a b c d 1 2 3 4 X-c(5,9,2)a c d f g h 1 3 4 6 7 8 XX5f g h i 6 7 8 9 XX5 &a
22、mp; X Xc(c,g,d)c g d 3 7 4 XX %in% letters5:13named integer(0) XX %in% 5:13e f g h i 5 6 7 8 9 sstr sstrsstr %in% c(letters,LETTERS)1 c B c a例子 Xi,j #下标为(i,j)的元素 Xi, #第i列 X,j #第j列 X,c(1,3) #第1,3列 X“name”, #名为”name”的行数组具有类似的数据分割与选取方法数组具有类似的数据分割与选取方法矩阵索引练习2.2 熟练掌握数据分割与选取的方法 X X D E F Ga 1 2 3 4b 5 6 7
23、 8c 9 10 11 12 X2,31 7 X2,D E F G 5 6 7 8 X,4 a b c 4 8 12 X,c(1,3) D Fa 1 3b 5 7c 9 11 Xa,D E F G 1 2 3 4 九、数据列表 数据列表(list)是一组数据元素的集合,这些数据元素可以是不同的数据结构(dim属性,数据类型等) list()函数可以组合任意对象 FamilyInfo FamilyInfo$hostname1 joe$wife1 rose$no.children1 3$child.ages1 1 3 7 FamilyInfo$wife #通过元素的名字来访问1 rose“ Fam
24、ilyInfo3 #通过元素的编号来访问$no.children1 3 FamilyInfo31 3例子数据列表操作 长度扩展 length(FamilyInfo)1 4 FamilyInfo5 FamilyInfo$hostname1 joe$wife1 rose$no.children1 3$child.ages1 1 3 751 10th F, HongXing Building, No.100, JainYe Road数据列表合并 FamilyBirthday c(FamilyInfo,FamilyBirthday)-Family #函数c()可以连接数据列表 Family$hostn
25、ame1 joe$wife1 rose$no.children1 3$child.ages1 1 3 751 10th F, HongXing Building, No.100, JainYe Road$hostbirthday1 1979/10/08$wifebirthday1 1973/07/09 数据框(data frame)是一个属于data.frame 类的列表。不过,对于可能属于数据框的列表对象有下面一些限制条件,1、分量必须是向量(数值, 字符, 逻辑),因子,数值矩阵,列表或者其他数据框;2、矩阵,列表和数据框为新的数据框提供了尽可能多的变量,因为它们各自拥有列,元素或者变量;
26、3、数值向量,逻辑值,因子保持原有格式,而字符向量会被强制转换成因子并且它的水平就是向量中出现的独立值;4、在数据框中以变量形式出现的向量结构必须长度一致,矩阵结构必须有一样的行数. 数据框常常会被看作是一个由不同模式和属性的列构成的矩阵。它能以矩阵形式出现,行列可以通过矩阵的索引习惯访问。十、数据框创建数据框 L3 d d x y fac1 1 1 C2 1 2 A3 1 3 B4 1 4 C5 1 5 A6 1 6 B7 1 7 B8 1 8 B9 1 9 B10 1 10 A d1 x1 12 13 14 15 16 17 18 19 110 1 d1 1 1 1 1 1 1 1 1 1
27、 1 1 mode(d1)1 list mode(d1)1 numeric length(d1)1 1 length(d1)1 10 d231 3d d x y fac HT1 1 1 B T2 1 2 A H3 1 3 B H4 1 4 A T5 1 5 C T6 1 6 A T7 1 7 B H8 1 8 C T9 1 9 C H10 1 10 A T rbind(class=sapply(d, class), mode=sapply(d, mode) x y fac HT class numeric numeric factor factor mode numeric numeric numeric numeric d d x y fac HT1 1 1 A H2 1 2 A T3 1 3 C T4 1 4 A T5 1 5 B H6 1 6 C H7 1 7 C T8 1 8 A H9 1 9 A T10 1 10 C H rbind(class=s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国新型烟草行业开拓第二增长曲线战略制定与实施研究报告
- 2025-2030年中国卫星遥感行业全国市场开拓战略制定与实施研究报告
- 2025-2030年中国空调维修与售后行业并购重组扩张战略制定与实施研究报告
- 新形势下电子散热材料及器件行业高速增长战略制定与实施研究报告
- 中国移动互联网APP行业发展趋势预测及投资战略研究报告
- 二年级数学(上)计算题专项练习汇编
- 春分文化与新媒介
- 管理层晋升述职报告
- 易制爆危险化学品购销交易流程
- 二零二五年度大型货车司机劳动合同范本与注意事项2篇
- 阅读理解(专项训练)-2024-2025学年湘少版英语六年级上册
- 民用无人驾驶航空器产品标识要求
- 2024年医院产科工作计划例文(4篇)
- 2024-2025学年九年级英语上学期期末真题复习 专题09 单词拼写(安徽专用)
- 无创通气基本模式
- 江西省赣州市寻乌县2023-2024学年八年级上学期期末检测数学试卷(含解析)
- 《临床放射生物学》课件
- 肠造口还纳术手术配合
- 中国音乐史与名作赏析智慧树知到期末考试答案章节答案2024年山东师范大学
- ABB断路器参数调试讲义
- 管廊维护与运营绩效考核评分表
评论
0/150
提交评论