因子

2018-08-31

2018-08-31
数据结构-因子

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

1 因子创建


首先,创建向量a

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

其次,将字符串向量转换为因子

(y1factor <- factor(a))  # 将字符串型向量a转换为因子y1factor并显示
## [1] 乾 震 坎 艮 坤 巽 离 兑
## Levels: 兑 艮 坎 坤 离 乾 巽 震

然后,判断因子否创建完成

is.factor(y1factor)      # 判断是否为因子
## [1] TRUE

最后,按照因子水平排列

levels(y1factor)         # 按照因子水平值的升序显示所对应的类别值
## [1] "兑" "艮" "坎" "坤" "离" "乾" "巽" "震"
  • 本例中向量a包含了8个元素,转为为因子后有8个水平。

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

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

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

2 因子参数


基本书写格式为:

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

参数levels是原类别值,labels为新类别值,彼此一一对应。

X<-c("50","60","80","98")  # 创建向量X
(Y<-factor(X,levels=c("50","60","80","98")))  #转换为因子 
## [1] 50 60 80 98
## Levels: 50 60 80 98

重新设定因子的类别值

(Y<-factor(X,levels=c("50","60","80","98"),labels=c("不及格","及格","良好","优秀")))# 重设类别值
## [1] 不及格 及格   良好   优秀  
## Levels: 不及格 及格 良好 优秀
  • 通过参数levels和labels,将原类别值“50”,“60”,“80”,“90”依次替换为“不及格”,“及格”,“良好”,“优秀”。