因數(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。