R获取数值向量的分位数值

2022-09-21 16:20:47 浏览数 (3)

如果我们手上有一个数值向量,怎么用R去获取这个向量的各个分位数值呢?我们来看个具体的例子

代码语言:javascript复制
a=1:10
summary(a)

我们可以得到下面的结果,summary(a)一共得到6个数值,分别是a的最小值,1/4分位数,中值(2/4分位数),均值,3/4分位数和最大值。

四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。

第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。

第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

其实我们经常用的boxplot,也能展示这几个常用的数值(除了均值以外)

代码语言:javascript复制
boxplot(a)

除了使用summary这个函数以外,我们还可以使用quantile这个函数

代码语言:javascript复制
quantile(a)

默认情况下,quantile只会输出最小值,1/4分位数,中值(2/4分位数),3/4分位数和最大值,相比于summary少了一个均值。

这个函数除了可以输出固定这这个几个分位数值以外,还可以输出你指定的分位数值。

代码语言:javascript复制
quantile(a,c(0,0.25,0.35,0.5,0.75,1))

接下来我们看看数值矩阵

代码语言:javascript复制
b=matrix(1:20,nrow=4)
summary(b)

默认会算出每一列的最小值,1/4分位数,中值(2/4分位数),均值,3/4分位数和最大值。

如果我们要取出每一列的中值,直接使用下面的方法是得不到数值的,是一个字符串。

代码语言:javascript复制
summary(b)[3,]

这个时候我们可以使用apply函数

代码语言:javascript复制
apply(b,2,summary)
apply(b,2,summary)[3]

同样的,使用apply quantile也可以实现

代码语言:javascript复制
apply(b,2,quantile)
apply(b,2,quantile)[3,]

0 人点赞