购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.5 因子

在R语言中,因子是处理分类数据的一种数据结构。例如,处理糖尿病患者的类型、性别、学历、职业和省份等。本节将介绍因子的概念及应用,如何创建因子和调整因子水平。

4.5.1 因子的概念及应用

因子用于对数据进行分类,并将其存储为不同级别的数据对象。其命名源于统计学中的名义变量。

在统计学中,变量分为区间变量(连续变量)、有序变量和名义变量(分类变量)。

区间变量(连续变量):连续的数值变量,如身高、体重等,可以进行求和、求平均值等运算。

名义变量:没有顺序之分的类别变量,如性别、民族、省份、职业等。

有序变量:有次序逻辑关系的变量。例如,排名,第一第二第三,有先后顺序;高血压分级,0=正常,1=正常高值,2=1级高血压,3=2级高血压,4=3级高血压,有高低顺序;体积,大中小,有大小顺序。

其中,名义变量和有序变量在R语言中称为因子(factor),因子表示向量元素的类别,根据数字和字母顺序自动排序,如果是数值型向量,因子会将数据重新编码并存储为水平的序号。因子的取值称为水平(level),水平表示向量中不同值的记录。

在R语言中,因子主要应用在以下几个方面:

计算频数。

独立性检验。

相关性检验。

方差分析。

主成分分析。

因子分析。

4.5.2 创建因子

在R语言中创建因子主要使用factor()和gl()函数,下面分别进行介绍。

1.factor()函数

factor()函数可以将变量转换为因子,如果进行排序,则需要设置ordered参数为TRUE。

下面创建两种不同类型的因子,示例代码如下:

运行程序,结果如图4.57所示。

图4.57 创建因子

从运行结果可知:字符型向量和数值型向量都被转换成因子,并且运行结果中还多了一行如“Levels:类别1类别2类别3类别4类别5”,这行在因子中叫作因子水平,表示向量中不同值的记录,根据数字和字母顺序自动排序,对于数值型向量会重新编码并存储为水平序号。

2.gl()函数

创建因子还可以使用gl()函数,该函数用于通过指定其级别的模式来生成因子。语法格式如下:

     gl(x, k, length, labels, ordered)

参数说明如下。

x:表示级别数。

k:表示重复次数。

length:表示结果长度。

labels:表示向量标签,可选参数。

ordered:表示用于对级别进行排序的布尔值。

例如,创建级别为2、重复次数为10和长度为20的因子变量,示例代码如下:

     gl(2, 10, 20, labels = c("男","女"))

运行程序,结果如下:

     [1] 男 男 男 男 男 男 男 男 男 男 女 女 女 女 女 女 女 女 女 女
     Levels: 男 女

4.5.3 调整因子水平

从上述举例可以看出,因子水平默认是从小到大排序的。因子水平一般按字母顺序或数字大小排序,或者由factor()函数中的levels参数指定排序顺序。在实际数据分析过程中,有时需要重新排列因子水平并进行差异化分析。

重新调整因子水平主要使用relevel()函数。如在员工满意度调查中调整满意度顺序,示例代码如下:

代码解析

第6行代码:unique()函数用于去重。

运行程序,结果如图4.58所示。

图4.58 调整因子水平 YeFVKV+zM/m372lKxWsNFUFkQhrYwux0XtGOqpwDSpsb22o7CNKEnUcIUlWcmMl2

点击中间区域
呼出菜单
上一章
目录
下一章
×