计算R中多列的百分位数

时间:2016-03-10 10:23:57

标签: r

我需要按照以下概率值0.05,0.25,0.50,0.75,0.90,0.95,0.99,1来计算100个变量(不包括时间)的分位数

数据结构如下

数据集名称-DF

time Var1 var2 var3.....var100

 1    100   230  378......300

 2    200  145  129......240

 3    150  235  200 .... 690

我使用以下逻辑。

percentiles <- do.call("rbind",tapply(df[2:100],quantile,probs=c(0,0.05,0.25,0.50,0.75,0.90,0.95,0.99,1),na.rm=TRUE))

由于这仅在向量上运行,因此很难调用所有100个变量。

1 个答案:

答案 0 :(得分:5)

为什么要使用tapply?在这里使用apply似乎很好,例如:

quants <- c(0,0.05,0.25,0.50,0.75,0.90,0.95,0.99,1)
apply( df[2:100] , 2 , quantile , probs = quants , na.rm = TRUE )