(二)R语言的数据类型

1. 向量

用于存储数值型、字符型或逻辑型数据的一维数组,注意,单个向量中的数据必须是同一个类型,不能混合。用函数c()可创建向量:

(二)R语言的数据类型对于有规律的,如右边的a和b,可以采用更简单的b的写法。

向量可以使用下标法索引(索引从1开始,不是从0开始):

(二)R语言的数据类型

最简单的向量只有一个元素,称为标量(注意:实际上没有标量这个类型,只是类比,本质是单元素向量): a <- 0,通常用于表示常量。

2. 矩阵

是一个二维数组,维数大于2建议直接使用数组,每个元素都有相同的类型。用函数matrix()可创建矩阵:

(二)R语言的数据类型

上面两个区别在于初始化时是否设置行列的名字。

3. 数组

与矩阵类似,数组里每个元素类型也必须一样,区别在于维数可以大于2。用函数array()可以创建数组:

(二)R语言的数据类型

初始化2*3*4维数组中,c(2,3,4)说明每个维度下标的最大值,上面首先给出第3维,然后每一维用矩阵列出,因此,索引数据也很方便,这里取[2,2,3],很容易得出16。

4. 数据框

矩阵和数组的列的元素类型必须一致,而数据框的列的元素类型吧不必一致,类似数据库的表,每一列的类型通常都不一样,这种数据类型在实际建模时更常用。用函数data.frame()可以创建数据框:

考虑如下表格:

学生成绩
name chinese math english
Jim 90 91 92
Jack 85 86 87

用数据框来表示如下:

(二)R语言的数据类型

现在想要获取chinese成绩栏一列,可如下:

(二)R语言的数据类型第二种有点特殊,使用了记号"$"。

可以看到,输入列名字很长,可以使用如下方法简化,这里用到了with():

(二)R语言的数据类型

这样就相当于在student_scroe这个名称空间下进行操作,因此,输入student_chinese会自动被搜索到。

另外,在这个数据框中,名字可以标识一条数据,因此,在新建数据框时,增加一个标识符会更好,这样带打印输出或图形显示中会更直观:

(二)R语言的数据类型

可以看到,打印输出地数据框不使用1和2表示每一行,而是使用student_name来标识。

5. 因子

R语言中,变量有三种类型:

名义型:

Sexual(Man, Woman), 属于哪一类都可以,两个变量存放是顺序无关的。

有序型:

Score(Low, Middle, High),成绩高低,这里是一个范围,并没有指出高多少,但是,从低到高是有一个顺序的。

连续型:

如年龄、身高等,值都是连续变化的。

R语言中,类别(名义型)和有序类别(有序型)又称为因子,它决定了数据的分析方式以及如何进行视觉呈现。

(二)R语言的数据类型

可以看到,factor默认无序,输入"Woman", "Man", "Man", "Man"后,默认按字母排序为Man、Woman,因此序号为1,2,后面查看sexual_f时对应输出就是2,1,1,1。

有时候,应用字母排序不符合实际需求,因此,需要增加参数说明按输入的顺序排序:

这里需要同时增加两个限定条件:

(二)R语言的数据类型

6. 列表

列表与向量不一样,列表里的元素可以不一致,可以为向量、矩阵、数据框等的组合。用函数list()可以创建列表,列表的元素需要使用双重括号来获取,也可以给每一个元素起名字:

(二)R语言的数据类型