收藏 分销(赏)

《R语言》课件 第3章 数据模型(2).pdf

上传人:曲**** 文档编号:231507 上传时间:2023-03-21 格式:PDF 页数:53 大小:1.37MB
下载 相关 举报
《R语言》课件 第3章 数据模型(2).pdf_第1页
第1页 / 共53页
《R语言》课件 第3章 数据模型(2).pdf_第2页
第2页 / 共53页
《R语言》课件 第3章 数据模型(2).pdf_第3页
第3页 / 共53页
《R语言》课件 第3章 数据模型(2).pdf_第4页
第4页 / 共53页
《R语言》课件 第3章 数据模型(2).pdf_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、大数据应用人才培养系列教材第三章数据类型3.1变量与常量结构3:3字符串操作3.4用于数据处理和转换的常用图习题3.1变量与常量第三章数据类型R语言是面向对象的。面向对象的理论一两句话说不清楚,但对于 数据至少应该了解三个方面。(1)R能处理的一切(包括数据、函数、公式、图表、包等)都称为 object o(2)类。一个objec哪应该能找到它所归属的某个类(class)。“类 是抽象的概念,一个类至少有一个特征是这类数据所共有的。根据应 用需求、目的等不同可以定义不同的类。比如,做生物信息的可以定 义出DNA类、RNA类,为了高效处理这类数据,定义这些类是非常必 要的。所以,R里面有很多的“

2、类”。类型。类型是类的实例,我们不可能也没必要去了解所有的“类”,但R语 言定义的一些基本数据类型得需要我们了解,而且得较详细地了解。这包括向量、因子、矩阵、列表、数据框和一些特殊的数据类型。变量与常量第三章数据类型变量不同的行业对于下表1给出的数据(数据集)的行和列叫法不同。统计学家称它们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据挖掘/机器学习学科的研究者则把它们叫作示例(example)和 属性(attribute)。在本书中使用:观测和变量。病人编号(PatientID)入院时间(AdmDate)年龄(A

3、ge)糖尿病类型(Diabetes)病情(Status)110/15/200925TypelPoor211/01/200934Type2Improved310/21/200928TypelExcellent410/28/200952TypelPoor变量与常量第三章数据类型从表中可以清楚地看到该数据中包含的元素的数据类型。其中,PatientID是行/实例标识符,AdmDate是日期型变量,Age是整 型变量,Diabetes是名义型变量,Status是有序型变量。变量的类型包括数值型、字符型、逻辑型、复数型(虚数)和字节。在表中,PatientID.AdmDate和Age为数值型变量,而 D

4、iabetes和Status为字符型变量。Diabetes和Status分别是名义 型和有序型变量。R将实例标识符称为rownames(行名),将名义型和有序型 变量称为因子(响应变量、决策变量、类别变量)。变量与常量第三章数据类型常量R中定义了一些常量类型:NA:表示不可用Inf:无穷-Inf:负无穷TRUE:真FALSE:假大数据应用人才培养系列教材第三章数据类型3.1 变量与常量3.2 数据结构3.3 字符串操作3.4 用于数据处理和转换的常用度 习题 3.2数据结构第三章数据类型(a)向量r r _。(e)列莪向量数组数据框各列的模式(modes)可以不同列表 3.2数据结构第三章数据

5、类型向量向量是用于存储数值型、字符型或逻辑型数据的一维结构。产生向量函数c()为自定义量例子:bcb-l:4#得到“1,2,3,4”;主意c-l:4+l和c seq(2z 10)#默认公差为11 2 3 4 5 6 7 8 9 10 seq(2z 10 z2)#如果不指定长度,form,to,by关键词可以省 略1 2 4 6 8 10 seq(from=2,by=2Jen=10)#关键词to和len不能同时使 用1 2 4 6 8 10 12 14 16 18 20 3.2数据结构第三章数据类型向量rep()重复一个对象格式 1:rep(x,times):x是要重复的对象(例如向量cQ23)

6、,times为对象中每个元素 重复的次数(如times二c(9,7,3)就是将x向量的1重复9次,2重 复7次,3重复3次)。格式2:rep(xz each=n)重复 x 元素 n 次;rep(c(l,2,3),2)得到 1 2 3 1 2 3;rep(cQ23),each=2)得到1 1 2 2 3 3。3.2数据结构第三章数据类型向量r n o r m()随机产生正态分布向量 格式:rno rm(个数,均值,方差)例子:x x-rnorm(5/2/3)说明1:同一向量中无法混杂不同类型的数据。说明2:f x x3#下标为正数,取出下标对应的元素14 x-3#下标为负数,排除下标对应的元素1

7、 2 3 5 6 7 8 9 10 xc(3,5,8)#如果一次取出多个元素,需要用向量做下标1 4 6 9 x-c(3,5,8)#如果一次排除多个元素,需要用向量做下标,注意负号1 2 3 5 7 8 10 xwhich(x6)#取出满足条件的元素,要使用which。函数1 7 8 9 10 xwhich.max(x)#取出最大元素,最小元素小标为which.min1 10 x3:5#取出连续的元素14 5 6 3.2数据结构第三章数据类型向量(3)向量运算R语言最强大的方面之一就是函数可以直接对向量的每个元素进行操作。【例3.1】产生两个不等长整数向量x和y,计算,x+y,xy,xxy,及

8、x的长度。【解】y x sqrt(x)#向量开方 x+y#向量加,如果两个向量的长度不同,R将重复较短的向量#元素,直到得到的向量长度与较长的向量的长度相同为止。1 4 6 8 10 8 10 12 1412 crossprod(xzx)#内积 tcrossprod(x,x)#外积length(x)#向量长度 3.2数据结构第三章数据类型矩阵矩阵是一个二维数组,只是每个元素都拥有相同的类型(。矩阵创建格式 1:matrix(datazc(nrow,ncol),byrow=T)格式2:matrix(dataznrow=,ncol=zbyrow=T)格式3:rbind(c(L2),c(3,4)格式

9、4:array(rep(l:3z each=3)z dim二c(3,3)#见数组章节 3.2数据结构第三章数据类型矩阵(2)矩阵引用方法1:使用下标和方括号来选择矩阵中的行、列或元素。yiz:返回矩阵y中的第i行;y,j:返回第j列;yi,j:返回第i行第j列元素。yi,-j:返回第i行,但排除第j列元素。y-i,j:返回第j行,但排除第i行元素。方法2:使用向量和方括号来选择矩阵中的行、列或元素。yc(l,3),c(2:4):返回第L 3行,第2,4歹阮素。yc(L 3),-c(2:4):返回第L 3行,但排除第2,4列元素。3.2数据结构第三章数据类型矩阵(3)矩阵运算转置:t(y);横向

10、合并矩阵:cbind();纵向合并矩阵:rbind();将矩阵转化为向量:as.vector();返回矩阵维度:dim。、nrow()和ncol();对矩阵各列求和:colSums。;求矩阵各列的均值:colMeans();对矩眸各行求和:rowSu ms();求矩阵各列的均值:ro w M ea n s();计算行列式:det();3.2数据结构第三章数据类型数组数组(array)与矩阵类似,但是维度大于2。数组可通过array函 数创建,形式如下:格式:myarray-array(datazdimentins)data包含了数组中的数据,dimensions给出了各个维度下标的最大值。例子

11、:z-array(l:24zc(2,3/4)数组是矩阵的一个自然推广,在编写新的统计方法时,数组可能很 有用。像矩阵一样,数组中的数据也只能拥有一种类型。数组引用与矩阵相同,如,元素zl,2,3为15。3.2数据结构第三章数据类型数组【例3.4】数组的行列和、平均值。对于多维数组,rowSums,colSums,rowMeans,colMeans的使 用稍为复杂点。它们的参数为:colSums(xz na.rm=FALSE,dims=1)rowSums(x,na.rm=FALSE,dims=1)colMeans(xz na.rm=FALSE,dims=1)rowMeans(x,na.rm=FA

12、LSE,dims=1)其中,dims为整数,表示哪个或哪些维数被看作行或列,对于row 统计函数,dims+1及以后的维度被看作行,对于col函数,dims 及以前的维度(l:dims)被看作列。3.2数据结构第三章数据类型数据框数据框允许不同的列可以包含不同类型的数据,所以,数据框的概念 较矩阵来说更为一般。数据框是在R中最常处理的结构类型。Q)创建数据框x mydataset)来读取并编辑列名称。colnames(mydataset)lcolnames(mydataset)2colnames(mydataset)可以通过row.names(数据框)来读取并编辑行名称 row.names(m

13、ydataset)row.names(mydataset)1 rl r2 r3 r4 r5 mydataseta type PHrl A winter 7.3r2 B summer 6.4r3 A summer 8.6r4 A spring 7.2r5 B fall 8.9 3.2数据结构 第三章数据类型列表列表(list)是R的数据类型中最为复杂的一种。一般来说,列 表就是一些对象(或成分,component)的有序集合。列表允许你 整合若干(可能无关的)对象到单个对象名下。例如,某个列表中 可能是若干向量、矩阵、数据框,甚至其他列表的组合。3.2数据结构第三章数据类型列表(D创建列表:my

14、list g h j k mylist-list(title=g,ages=h/j,k)#可以为列表中的对象命名 3.2数据结构第三章数据类型列表(2)访问列表中的元素。mylist2和mylist匕ges 口均指那个含有四个元素的向量。由于两个原因,列表成为了R中的重要数据结构。首先,列表允许 以一种简单的方式组织和重新调用不相干的信息。其次,许多R函 数的运行结果都是以列表的形式返回的。需要取出其中哪些成分由 分析人员决定。3.2数据结构第三章数据类型因子变量可归结为名义型、有序型或连续型变量。名义型变量是没 有顺序之分的类别变量。下表中,糖尿病类型Diabetes(Typel.Type2

15、)是名义型变量的一例。即使在数据中Type稀码为1而 Type2编码为2,这也并不意味着二者是有序的。病人编号(PatientID)入院时间(AdmDate)年龄(Age)糖尿病类型(Diabetes)病情(Status)I10/15/200925TypelPoor211/01/200934Type2Improved110/21/200928TypelExcellent410/28/200952TypelPoor 3.2数据结构第三章数据类型因子有序型变量表示一种顺序关系,而非数量关系。病情Status(poor,improved,excellent)是顺序型变量的典型示例。我们知 道,病情为

16、poor(较差)病人的状态不如improved(病情好转)的 病人,但并不知道相差多少。类别变量(名义型变量、响应变量)和有序类别(有序型)变 量在R中称为因子(factor)。因子在R中非常重要,因为它决定了 数据的分析方式以及如何进行视觉呈现。3.2数据结构第三章数据类型因子函数factor。以一个整数向量的形式存储类别值,整数的取值范 围是2k(其中k是名义型变量中唯一值的个数),同时一个由字 符串(原始值)组成的内部向量将映射到这些整数上。举例来说,假设有向量:diabetes-c(typel,type2,typel,typel)语句diabetes-lactoKdiabetes)将此

17、向量存储为(L 2,1,1),异在 内部将其关联为1二Typel和2二Type2(具体赋值根据字母顺序而 定)。针对向量diabetes进行的任何分析都会将其作为名义型变量 对待,并自动选择适合这一测量尺度的统计方法。3.2数据结构第三章数据类型因子要表示有序型变量,需要为函数factor。指定参数ordered二TRUE。给定向量:status-c(/zPoorn z yzImprovedA,Excellent,Poor)语句status-factor(status,0rdered二TRUE)会将向量编码为(3Z 2,1,3)z并在内部将这些值关联为1二Excellent、2=Im prov

18、ed 以及3二Poor。另外,针对此向量进行的任何分析都会将其作为有序 型变量对待,并自动选择合适的统计方法。3.2数据结构第三章数据类型因子通过指定levels选项来覆盖默认排序。例如:status data“R语言是门艺术“nchar(data)17(2)字符串合并 paste(strLstr2,sep)data datal paste(datazdatalzsep=z)1“R语言是门艺术要用心体会”(3,字符创分割 strsplit(string,sep)data3 strsplit(data3z)11”2017”“2月 28”3.3字符串操作第三章数据类型字符串基本操作(4)读取和替换

19、字符串 substr(string,start,stop)substr(data3,5z5)“年”su bstr(data3Z4,4)data3”2016年2月28”(5)字符串谢金 hartr(old,new,string)chartr(29,29H,,data3)#old不存在,无操作chartr(28z28B zdata3)#超过 string 长度的字符不替换 chartr(28z2Bzdata3)3.3字符串操作第三章数据类型 字符串处理stringr包Q)字符串拼接函数str_c:字符串拼接。strjoin:字符串拼接,同str_c。str_trim:去掉字符串的空格和TAB(t)

20、str_pad:补充字符串的长度str_dup:复制字符串stjwrap:控制字符串输出格式str_sub:截取字符串str_subext#查找含有DO组合的单词 grep(Ddo,text)#不区分大小写1 1 10 grep(Do,text)#D要大写11 grep(doztext)#D/J1 103.3字符串操作第三章数据类型【例3.6】邮箱匹配。#邮箱匹酉己:text2grepl(,0-9.*+a-z.*.a-z.*/text2)1 TRUE大数据应用人才培养系列教材第三章数据类型3.1 变量与常量结构3.3 字符串操作3.4 用于数据处理和转换的常用函数习题 3.4用于数据处理和转换

21、的常用函数第三章数据类型用于管理R工作空间的函数用途length(object)dim(object)str(object)class(object)mode(object)names(object)c(objectfobjectf.)cbind(object,object,.)rbind(object,object,.)显示对象中元素/成分的数量 显示对象的维度 显对象的结构 显示对象的类别显示对象的模式显示象中各成分的名称 将对象合并入一个向量 按列合并对象 按行合并对象 3.4用于数据处理和转换的常用函数第三章数据类型用于管理R工作空间的函数函数用途length(object)dim(o

22、bject)str(object)class(object)mode(object)names(object)c(objectfobjectf.)cbind(object,object,.)rbind(object,object,.)显示对象中元素/成分的数量 显示对象的维度 显不对象的结构 显示对象的类别显示对象的模式显示象中各成分的名称 将对象合并入一个向量 按列合并对象 按行合并对象 3.4用于数据处理和转换的常用函数第三章数据类型用于管理R工作空间的函数to one long vectorTo matrixTo data frameFrom vectorc(x,y)cbind(xzy)

23、rbind(xzy)data.frame(xzy)From matrix/.、as.data.frame(mymaas.vector(mymatnx)上冈From data frameas.matrix(my frame)大数据应用人才培养系列教材第三章数据类型3.1 变量与常量结构3二3告符串操作3.4用于数据处理和转换的常用度习题习题:1.从表3.1你可以清楚地看到此数据结构(本例中是一个数据框)以及其中包含的元素和数据类型。其中,Status是_变量。A.日期型 B.整型 C.名义型 D.有序型2.R中的数据结构包括_oA.向量 B.矩阵 C.数组 D.以上全是3.R中最常处理的数据结构

24、是_。A.向量 B矩阵 C数组 D.数据框4.a=matrix(l:12,nrow=4,ncol=3);a2,2;结果为()。A.5 B.6 C.7 D.85.如果A是5行x6夕的矩阵,t(A)是_。A 5行x6列矩阵 B 30个元素的向量C 11个元素的向量 D 6行x5列的矩阵6.a=det(matrix(l:12,nrow=4zncol=3,byrow=TRUE)b=det(matrix(l:12,nrow=3/ncol=4,byrow=FALSE)则有_oA ab B a=b C ab D两者都显示出错信息习题:7.将矩阵转化成向量使用_o8.对于字符型向量,因子的水平默认依_(顺序创建。9.列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对 象(或成分,component)的_集合。10._可为类别型变量创建值标签。11.产生100个满足标准正态分布N(0,l)的随机数,使用的函数是一。12.请使用seq()产生一个首相为2,公差为2,长度为10的等差向量序列。13.横向合并矩阵c(2,l),c(4,3)。14.建立一个R文件,在文件中输入变量x=(l,2,3)T,y=(4,5,6)T,并作以下运算。计算 z=2x+y+e,其中 e=(lzlzl)T;计算x与y的内积;计算x与y的外积;感谢聆听

展开阅读全文
相似文档
猜你喜欢
搜索标签

当前位置:首页 > 环境建筑 > 图纸/模型

移动网页_全站_页脚广告1

关于我们     诚招英才     服务填表     联系我们

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服