
---
title: "数据结构-因子"
output: 
  html_document:
    number_sections: TRUE
    toc: TRUE
    toc_float: TRUE
    code_folding: show
    fig_width: 7
    fig_height: 4.5
    theme: united
    highlight: tango
---
<font size=4 face="微软雅黑">

&emsp;&emsp;因子的基本含义为"元素、因素、成分"。R语言对因子的处理，建立在一定的条件下，用来整合具备某些相同特征的数据。

# 因子创建
***
首先，创建向量a

```{r,}
a<-c("乾","震","坎","艮","坤","巽","离","兑") #向量a（创建包含8个元素的字符串）
str(a) # 查看a的结构信息（查看数据结构得知向量a为字符型）
```

其次，将字符串向量转换为因子
```{r,}
(y1factor <- factor(a))  # 将字符串型向量a转换为因子y1factor并显示
```

然后，判断因子否创建完成
```{r,}
is.factor(y1factor)      # 判断是否为因子
```

最后，按照因子水平排列
```{r,}
levels(y1factor)         # 按照因子水平值的升序显示所对应的类别值
```

* 本例中向量a包含了8个元素，转为为因子后有8个水平。

* 通过str()查看结构信息，得知为字符串型。

* c <- factor(向量名))将其转换为因子

* levels函数按因子的水平值升序，依次显示对应类别值。

# 因子参数
*** 
基本书写格式为：

factor(向量名，levels=c(类别值列表),labels=c(类别值列表))

参数levels是原类别值，labels为新类别值，彼此一一对应。
```{r,}
X<-c("50","60","80","98")  # 创建向量X
(Y<-factor(X,levels=c("50","60","80","98")))  #转换为因子 
```
重新设定因子的类别值
```{r,}
(Y<-factor(X,levels=c("50","60","80","98"),labels=c("不及格","及格","良好","优秀")))# 重设类别值
```
* 通过参数levels和labels，将原类别值"50","60","80"，“90”依次替换为"不及格","及格",“良好”，“优秀”。