因子(factor)是一个对同长的其他向量元素 进行分类(分组)的向量对象。 R 同时提供有序(ordered)和无序(unordered)因子。 而“真正”使用因子是在设计模型公式的时候 (see Contrasts),这里我们只是看一些特别的例子。
假定我们有一份来自澳大利亚所有州和行政区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")
注意在字符向量中,“有序”意味着 以字母排序的。
> 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"
[1] 读者注意一下, 澳大利亚有8个州和行政区,分别是 Australian Capital Territory, New South Wales, the Northern Territory, Queensland, South Australia, Tasmania, Victoria 和 Western Australia。