5.10 因子的频率表
单个因子会把各部分数据分成不同的组。类似的是,一对因子可以实现交叉分组等。 函数 table()
可以从等长的不同因子中计算出频率表。如果有 k
个因子参数,那么结果将是一个k-维的频率分布数组。
假定 statef
是一个设定数据向量元素个体所在州的因子,那么下面的赋值
> statefr <- table(statef)
将会把一个样本中各种状态的频率分布表赋给 statefr
。这些频率会被排序且以因子的水平特性标记。等价但有点烦琐实现方式如下
> statefr <- tapply(statef, statef, length)
进一步假设 incomef
是一个按适当定义的“收入阶层”对数据向量元素进行分类的
因子。它可以用函数 cut()
定义:
> factor(cut(incomes, breaks = 35+10*(0:7))) -> incomef
然后计算频率的二维表:
> table(incomef,statef)
statef
incomef act nsw nt qld sa tas vic wa
(35,45] 1 1 0 1 0 0 1 0
(45,55] 1 1 1 1 2 0 1 3
(55,65] 0 3 1 3 2 2 2 1
(65,75] 0 1 0 0 0 0 1 0
同样的方法也可以得到高维的频率分布表。