使用factor对数据分组
a = c('a','b','c','a','b','b','a')
af = factor(a)
table(a)
设向量b为向量a对应的一组数据,以及a的分组,求每组数据的平均值
b = c(1,2,3,4,5,6,7)
avg <- tapply(b,a,mean)
计算过程为:
a,b,c对应与b中的总和/ (a,b,c 出现的次数)
avg(a) = (1+4+7)/3 = 4
avg(b) = (2+5+6)/3 = 4.3
avg(c) = (3)/1 = 1
现求每组数据的方差(调用var函数),注意在R中var函数是经过贝塞尔修正过的(即除以n-1而不是n)。
v = tapply(b,a,var)
求值过程:
a : 1,4,7 ; mean(a) = 4
b : 2,5,6 ; mean(b) = 13/3
c : 3 ; mean(c) = 3
var (a) : [(1-4)^2 + (4-4)^2 + (7-4) ^ 2] / 2 = 9
var (b) : [(2-13/3)^2 + (5-13/3) ^ 2 + (6-13/3) ^ 2] / 2 = 5.4289+ 0.4489+2.7889 = 4.33
var (c) : (3-3)/0 = NA