如果我们手上有一个数值向量,怎么用R去获取这个向量的各个分位数值呢?我们来看个具体的例子 a=1:10 summary(a) 我们可以得到下面的结果,summary(a)一共得到6个数值,分别是a的最小值,1/4分位数,中值(2/4分位数),均值,3/4分位数和最大值。 四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。 第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。 第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。 第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。 其实我们经常用的boxplot,也能展示这几个常用的数值(除了均值以外) boxplot(a) 除了使用summary这个函数以外,我们还可以使用quantile这个函数 quantile(a) 默认情况下,quantile只会输出最小值,1/4分位数,中值(2/4分位数),3/4分位数和最大值,相比于summary少了一个均值。 这个函数除了可以输出固定这这个几个分位数值以外,还可以输出你指定的分位数值。 quantile(a,c(0,0.25,0.35,0.5,0.75,1)) 接下来我们看看数值矩阵 b=matrix(1:20,nrow=4) summary(b) 默认会算出每一列的最小值,1/4分位数,中值(2/4分位数),均值,3/4分位数和最大值。 如果我们要取出每一列的中值,直接使用下面的方法是得不到数值的,是一个字符串。 summary(b)[3,] 这个时候我们可以使用apply函数 apply(b,2,summary) apply(b,2,summary)[3] 同样的,使用apply+quantile也可以实现 apply(b,2,quantile) apply(b,2,quantile)[3,] 为了方便大家交流学习,共同进步,我特地创建了微信交流群 |
|