Next: , Previous: Objects, Up: Top



4 有序因子和无序因子

因子(factor)是一个对同长的其他向量元素 进行分类(分组)的向量对象。 R 同时提供有序(ordered)和无序(unordered)因子。 而“真正”使用因子是在设计模型公式的时候 (see Contrasts),这里我们只是看一些特别的例子。

4.1 一个特别的例子

假定我们有一份来自澳大利亚所有州和行政区30个税务会计师信息的 样本1 以及他们各自所在地的州名。州名以字符串向量的形式 保存在 state 中

     > state <- c("tas", "sa",  "qld", "nsw", "nsw", "nt",  "wa",  "wa",
                  "qld", "vic", "nsw", "vic", "qld", "qld", "sa",  "tas",
                  "sa",  "nt",  "wa",  "vic", "qld", "nsw", "nsw", "wa",
                  "sa",  "act", "nsw", "vic", "vic", "act")

注意在字符向量中,“有序”意味着 以字母排序的。

因子可以简单地用函数 factor() 创建:

     > statef <- factor(state)

函数 print() 处理因子和其他对象 有点不同:

     > statef
      [1] tas sa  qld nsw nsw nt  wa  wa  qld vic nsw vic qld qld sa
     [16] tas sa  nt  wa  vic qld nsw nsw wa  sa  act nsw vic vic act
     Levels:  act nsw nt qld sa tas vic wa

函数 levels() 可以用来得到因子 的水平(levels)。

     > levels(statef)
     [1] "act" "nsw" "nt"  "qld" "sa"  "tas" "vic" "wa"

Footnotes

[1] 读者注意一下, 澳大利亚有8个州和行政区,分别是 Australian Capital Territory, New South Wales, the Northern Territory, Queensland, South Australia, Tasmania, Victoria 和 Western Australia。