![大话数据科学:大数据与机器学习实战(基于R语言)](https://wfqqreader-1252317822.image.myqcloud.com/cover/435/34752435/b_34752435.jpg)
2.3 R数据对象的属性与结构
在《大话统计学》中定义数据的衡量尺度有:定比尺度、定距尺度、定序尺度、定类尺度。在R数据对象的属性有:数值、整数、因子、逻辑和字符串。数据对象结构有:向量、因子、矩阵、数据框、数组、列表、时间序列等,如图2-2所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P61_60073.jpg?sign=1738894394-pf9XmfSKe2wzmHmlVCoqn5htnxidYl7c-0-d8f268ce2db3ce12de2f1400ca8b4041)
图2-2 R数据对象的属性与结构
2.3.1 数值
数值(numeric):下列命令a,a1是变量,分别指定为 5,3.5。
> a <- 5#创建数据对象a
> a1 <- 3.5
2.3.2 整数
整数(integer):下列命令 b,b2是变量,分别指定为整数5,2。b1是数值。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P62_60074.jpg?sign=1738894394-tDq6pJybaU76c1eFJnCc72qRrv3NcluO-0-42978b102e965d4b5fa19b79eb5ad52c)
2.3.3 字符串
字符串(character):引号要用 " ",不能用“ ”(如果用Word编程)。
下列命令c,c1是变量,分别指定为字符串。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P62_60075.jpg?sign=1738894394-AX6LoTIhSVty73dE5Ioev4LiqIVCZ7OU-0-cc78ef4f498f8cc37788b85560146e04)
2.3.4 逻辑
逻辑(logical):TRUE =T = 1,FALSE = F = 0。下列命令d是变量,指定为TRUE。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P62_60076.jpg?sign=1738894394-kjGxdxRSLFH7cH0sMmmfv557LxGD1vyo-0-519539d425698b250a26044d378db77b)
2.3.5 向量
向量(vector)没有维度,不是行向量1×n,也不是列向量n×1,如图2-3所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P63_10602.jpg?sign=1738894394-AdckBJ24YIxVfCabwGG8jHuhRAQEH2Sj-0-7053a02fdd36e268e3d5d3e3fb700c84)
图2-3 向量
向量每个元素有相同的格式,数值或符串符。下列命令e,f,g,a是变量,指定为向量。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P63_60078.jpg?sign=1738894394-51rFRzzTEgBbplFRdbzMge7a82oVQvCA-0-e01e55c8e23d6426ff2e464225e079b8)
2.3.6 因子
因子(factor)是定类变量(无顺序)或定序变量(有顺序),分为有序因子和无序因子。
下列命令E,g是向量,F,G,H,h是变量,指定为因子。H,h改为有序因子。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60080.jpg?sign=1738894394-clTfJ2uFKpoFLH4b9Ekgc0Ueh8prxFg0-0-28d7577233d4b13f9de469be27a0a0e6)
如图2-4所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60081.jpg?sign=1738894394-NXFE6bb5MwLERVeh1EUwCyt7qOPnBtoG-0-56b7af11dccf5273bdc6182e0523af29)
图2-4 因子F
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60083.jpg?sign=1738894394-3fsRDnRNi9SQnmLi0hz7YeC50s4xdzXc-0-3ed9439bc4ecd8ed719416909d8d97e7)
如图2-5所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60084.jpg?sign=1738894394-nTaXLeKBc6njaUB68mrC1Q2EFEJcH8wn-0-ac52851247a93c0cd68a273deb41baf4)
图2-5 有序因子h
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60086.jpg?sign=1738894394-USRwPrVS6HvcrpOIjxtpRY5tmMXuTGvh-0-d01190a2b7e6559be82c02711fd5507f)
2.3.7 矩阵
矩阵(matrix)的维度是m×n,m是行的数目,n是列的数目,每个元素有相同的格式,通常都是数值,所以两个矩阵可以相加或相乘,相乘有如下两种。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P65_60088.jpg?sign=1738894394-7qAB6OFSUGJqP90p50G9dqAU60VKGRIK-0-efaab0557ace8c92b36008c82f5f97dc)
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P65_60089.jpg?sign=1738894394-pIAg1aIDtZl1e0ZOteEUDc8KEjwkyQcT-0-78a8bc44435d9bcdb667dfcd87165c86)
图2-6 矩阵
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P65_60091.jpg?sign=1738894394-UOK0Q6s0RGsj6w4JIaGoYZUOtp2OBDQN-0-a7175ffdabaf5bb3bb5ce20eb84ef759)
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P66_60092.jpg?sign=1738894394-BioKo0ijI5xQ7Qn1DQXuoKCIq3npMzXf-0-84f841f7431d68ae854b56a47286ba84)
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P67_11366.jpg?sign=1738894394-UP6YWIggraUASyVCWm8J1xTFr9obv3XT-0-bbf3ce9d06e811c235594477aca0851c)
2.3.8 数据框
数据框(data frame)是大数据R语言最常用的数据结构。数据框的数据常用命名为“df”。数据框每个列(变量)的样本数目相同,相同列的数据属性相同,不同列的数据可以有不同属性,如下例(示意图如图2-7所示)k有4行3列:X1的属性是字符串因子,X2和X3的属性是数值。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P67_60093.jpg?sign=1738894394-M42gFGVg5APB4tKxujI4ZwDjg187UKT1-0-4c70a8d71ca85605b4b2eef431e37b97)
图2-7 数据框示意
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P67_60095.jpg?sign=1738894394-sW0UNQ7LPDvBgYx2uVYW890mKl6ZFk0F-0-0cece68c45b10a4fd570eaa63cc63a21)
2.3.9 数组
数组(array)是多维的矩阵。
1.1.7节商业智能OLAP多维分析:向上钻取(roll up)、向下钻取(drill down)、切片(slice)和切块(dice)等数据结构应用是数组数据。
如下代码示意图如图2-8所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60096.jpg?sign=1738894394-xei3eMNVfn54pmti3mFFZKvuJdHCu1JR-0-521b228c7572339741efda59720baebf)
图2-8 数组示意
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60098.jpg?sign=1738894394-ds6yJvh9atoETgyexOztkF8Lc56PBDkN-0-207ceb732a9d63e6226f19c8674a69d3)
2.3.10 列表
列表(list)可以将不同结构的数据合并,如图2-9所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60102.jpg?sign=1738894394-ce0tpIiPV6s7MOZFOYogCWid5vOnDSkn-0-1fb2a8b2a293222db4dd4bab4bd049c2)
图2-9 列表示意
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60101.jpg?sign=1738894394-vro2RbBSTSBBFG0EVhdpjQbSyDs41eEt-0-14726cc1d3f23ef03a77c7fc2ff4c056)
2.3.11 时间序列
示意代码如下:
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P69_60103.jpg?sign=1738894394-jFvGeVTJ1bolRppNwjMfeWLOERjfb5zS-0-ed1d329f733aa57a0db10e672b6e9afc)
2.3.12 访问数据类型和结构
统计学和大数据最重要的是查看数据的类型和结构。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P69_12764.jpg?sign=1738894394-SChoPzgcnwXsnBqrOEZ70Suje9QamFWx-0-aa795155873783c9fcfd98c947bfa5cc)
一个数据结构在不同的访问中,可能有不同的结果。
2.3.13 遗失值
NA表示missing value,NaN表示not a number,NULL表示empty object。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P70_12802.jpg?sign=1738894394-h3KWCHbg6TKGV19jWv3A5wJTDqqCWT4R-0-698c82c2ac01e09185966f8bf31217df)
2.3.14 读入Excel CSV数据
在Excel中保存文件,选择“另存为”保存类型,选择“CSV(逗号分隔)”,即可保存AB.csv文件,可使用R语言打开。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P70_12805.jpg?sign=1738894394-D56Y81AKcxfJlMeUrCRfEVrRGSs0t7Z2-0-c9409a6e8b86a3211a960d0fab3b3579)
2.3.15 编辑数据
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P70_12807.jpg?sign=1738894394-j4l9T1PII5wDQGuxkPKCHV2ocRYyauKN-0-4b8b7ba3ec365ab0387f137c60584107)
2.3.16 保存Excel CSV数据
> write.csv(AB, fi le = "C:/R/AB.csv")
2.3.17 数据输入窗口
打开窗口输入数据。
> X <- data.frame(X1=character(0), X2= character(0), X3=numeric(0))
> X <-edit(X) # X1, X2当作因子 factor
2.3.18 R的数据结构和函数表
R的数据结构和函数表如表2-2所示。
表2-2 R的数据结构和函数
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-T71_60105.jpg?sign=1738894394-uonu2uxBY8tP9gySQHLVYrAa7n5Iw39g-0-ef11906515e6a5cd10c3b8824df9fe16)