R语言 如何计算百分位数

R语言 如何计算百分位数

在这篇文章中,我们将讨论如何在R编程语言中计算百分位数。

百分位数是中心趋势的衡量标准,它描述了在总数据中大约有一定比例的数据位于它的下面。在R语言中,我们可以使用quantile()函数来完成这项工作。

语法: quantile( data, probs)

参数

  • data: 要计算其百分位数的数据
  • probs: 百分位数的值

例1: 计算百分位数

要计算百分位数,我们只需传递数据和所需百分位数的值。

x<-c(2,13,5,36,12,50)
  
res<-quantile(x,probs=0.5)
  
res

输出

 50%  
12.5

例2:计算向量的百分位数

我们可以一次计算多个百分位数。为此,我们必须向probs参数传递百分位数的向量,而不是单一的值。

x<-c(2,13,5,36,12,50)
  
res<-quantile(x,probs=c(0.5,0.75))
  
res

输出

 50%   75%  
12.50 30.25 

例3:计算数据框架中的百分位数

有时需求要求计算一个数据框架列的百分位数,在这种情况下,整个过程保持不变,只是你必须传递列名,以代替数据和要计算的百分位数值。

df<-data.frame(x=c(2,13,5,36,12,50),
y=c('a','b','c','c','c','b'))
  
res<-quantile(df$x,probs=c(0.35,0.7))
  
res

输出

 35%   70%  
10.25 24.50 

例4:几列和所有列的百分位数

我们还可以一次找到数据框架中几列的百分位数。这也可以应用于查找数据框架中所有数字列的百分位数。为此我们使用apply()函数,在这个函数中我们将传递只有数字列的数据框架和必须应用于所有列的量化函数。

语法: apply( dataframe, function)

df<-data.frame(x=c(2,13,5,36,12,50),
y=c('a','b','c','c','c','b'),
z=c(2.1,6,3.8,4.8,2.2,1.1))
  
sub_df<-df[,c('x','z')]
  
res<-apply(sub_df, 2, function(x) quantile(x,probs=0.5))
  
res

输出

   x    z  
12.5  3.0 

例5:按组计算百分位数

我们也可以将数值分组,然后找出每个组的百分位数。为此,我们使用groupby()函数,然后在summaryize()中应用quantile函数。

library(dplyr)
  
df<-data.frame(x=c(2,13,5,36,12,50),
  
              y=c('a','b','c','c','c','b'))
  
df %>% group_by(y) %>%
  
 summarize(res=quantile(x,probs=0.5))

输出

A tibble: 3 x 2
y       res
<chr> <dbl>
a       2  
b      31.5
c      12 

例6:百分位数的可视化

将百分位数可视化可以使其更好地理解。

df<-data.frame(x=c(2,13,5,36,12,50),
y=c('a','b','c','c','c','b'),
z=c(2.1,6,3.8,4.8,2.2,1.1))
  
n<-length(dfx)
  
plot((1:n-1)/(n-1), sort(dfx.Length), type='h',
     xlab = "Percentile",
  ylab = "Value")

输出

如何在R语言中计算百分位数?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程