![大话数据科学:大数据与机器学习实战(基于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=1738954328-9gJaGxFvVSl2XxpUdFn4zsQHFZYO4rW8-0-097e37d794f595637f24ee9a566fbff0)
图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=1738954328-666jCvN9nZmzdSHCs4YZzrY67jK0tDLa-0-e054202fe4386a6b632cc9117790ae28)
2.3.3 字符串
字符串(character):引号要用 " ",不能用“ ”(如果用Word编程)。
下列命令c,c1是变量,分别指定为字符串。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P62_60075.jpg?sign=1738954328-wfVwGYHM6rdhh3TeVq6v5RzZhOwmB6gG-0-b762255c1be1d345e06ef6c935e3d90d)
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=1738954328-aHKnCeSxYGyeUjL3KgetKAsC2GFi1oNR-0-dc64fe51305fa37abfbb9ea3dd2095f3)
2.3.5 向量
向量(vector)没有维度,不是行向量1×n,也不是列向量n×1,如图2-3所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P63_10602.jpg?sign=1738954328-FDtAMEjbYkapmES7EaRkpzt9WFq6b3d4-0-69a5558b4ba2982ef3dfa26b25cf1ea0)
图2-3 向量
向量每个元素有相同的格式,数值或符串符。下列命令e,f,g,a是变量,指定为向量。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P63_60078.jpg?sign=1738954328-V95sKt1Jk1SJsCcE7Z3nMf00sVu7o6Gp-0-6cbe9f09fc12d0207b177e03af032dbd)
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=1738954328-QIkjGYRf3YhsLIbLl0F6opArMNHgPlKw-0-8cf1b5e2e124dc5f51ad6faa22891d2c)
如图2-4所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60081.jpg?sign=1738954328-vvuDIRQRR11YzmktY9qR9nCumzc5xveE-0-6363845b68d96a81dab79c5a35b28b2f)
图2-4 因子F
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60083.jpg?sign=1738954328-dCLRYbqgJgkjlw7ui0zndVpAYvOVrlPp-0-5661dcea91afc6c064d04eacba91dc04)
如图2-5所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60084.jpg?sign=1738954328-9KB9HdydY5p75N1WkdGCV9vAWIou7QH9-0-16a8d846449e5e3f3a259fc6570a9158)
图2-5 有序因子h
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P64_60086.jpg?sign=1738954328-TIzLxwFveqNrMqUbjcZY0xsP1jltssAo-0-891b1e7ce47878a91250a66895fb8aa8)
2.3.7 矩阵
矩阵(matrix)的维度是m×n,m是行的数目,n是列的数目,每个元素有相同的格式,通常都是数值,所以两个矩阵可以相加或相乘,相乘有如下两种。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P65_60088.jpg?sign=1738954328-BZ2IKb7y1x07asWkugLBVFxqI3EHmALO-0-d04cbb00612b8bdffd12a9829fecc93c)
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P65_60089.jpg?sign=1738954328-3jNXmz3aB6C8iMAzjP6pdvEKhbp36HWK-0-a901cb633c45a219eb94d1020aa76d05)
图2-6 矩阵
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P65_60091.jpg?sign=1738954328-5uwqMVcAitMaHvdtksY2NW6C2vgcHm7N-0-3a14e7fbe65ec3a9d6099d67b404719e)
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P66_60092.jpg?sign=1738954328-5UXfKQLZlQzRrFOYwjLlrJX8WxEfFOL7-0-cd4af1d637ec3774f83d8a5dafe405cd)
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P67_11366.jpg?sign=1738954328-77asEwMBWn3WuXZTEq90vZzdbz9evPxO-0-bf950f53cf7370385b25afff8ccecf63)
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=1738954328-smpox7dhqrTm0Y11X3GwAJU1LfRPzpNE-0-52aa5c8837525a828635958f199d0834)
图2-7 数据框示意
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P67_60095.jpg?sign=1738954328-3OHmYEyceHVzN5p1tK759cCBEl7Wkwhu-0-9045ba00d2fe2af831904c457cca4373)
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=1738954328-e0LJIyXDAWKQI0rBNppysTRFzhJ67jOO-0-e78364f4cc5830f727b7a139ac019c3e)
图2-8 数组示意
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60098.jpg?sign=1738954328-DztflyDteH7YpmF8NTloK2iU2B23XKAb-0-de39b645648cdc9db06d4f9760676c7e)
2.3.10 列表
列表(list)可以将不同结构的数据合并,如图2-9所示。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60102.jpg?sign=1738954328-ZwmMR39yOOG1BdC3WUe0KmcymFdFBiGc-0-42e538bba67df975af7cd3136bb4ff5b)
图2-9 列表示意
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P68_60101.jpg?sign=1738954328-7sH7Rlk9D2qzqXBEwpXWRVpZPWxmlNXN-0-03b6102def5c764fceb399660b7b30e5)
2.3.11 时间序列
示意代码如下:
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P69_60103.jpg?sign=1738954328-4oD0n1apJuOnAJPbb8lJHKV7wDUE4u0q-0-12982b6c8ae13d16c81c4296e8215e7c)
2.3.12 访问数据类型和结构
统计学和大数据最重要的是查看数据的类型和结构。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P69_12764.jpg?sign=1738954328-Toam24Q5EHxEJLjzAODRmHE5HmvlzU8X-0-a46803f0411561c1c3adbf26f4d5d187)
一个数据结构在不同的访问中,可能有不同的结果。
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=1738954328-p7fUePjJA0CIXExOhxwPvTMGypcNbBjz-0-e8d5d49767282a5c27e67322cb7308a6)
2.3.14 读入Excel CSV数据
在Excel中保存文件,选择“另存为”保存类型,选择“CSV(逗号分隔)”,即可保存AB.csv文件,可使用R语言打开。
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P70_12805.jpg?sign=1738954328-rDuNf4aUFwjy386C8vA0hyQ12qbilWcb-0-c79823a340235de2a0c10615440b5671)
2.3.15 编辑数据
![](https://epubservercos.yuewen.com/8CA86F/18562448501472406/epubprivate/OEBPS/Images/Figure-P70_12807.jpg?sign=1738954328-lSiaFQbqMcyqWHG66HiRqfArH1AsgBQK-0-df7fb7f66703a1d6c0134f750b4bf4ed)
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=1738954328-kdLAL0MN9mO0X2EafLXQMHwf4cTGtQQo-0-0d622cba6b0772c9c0fb2cb02dc4c667)