如何分别获得第95和第5百分位数?

时间:2013-05-20 08:50:58

标签: r

我有数据(egd和di),我想做一些计算。

数据:

d= 1:20
xi= 2:21

我想使用这个等式(对于d和xi分别使用第95和第5百分位数):

          res= d(95th)-d(5th)/xi(95th)+xi(5th)
          res2= res + xi(5th)

我们使用此函数获得第95和第5个百分位数(由stackoverflow用户提供):

   fun <- function(x){
quantiles <- quantile( x, c(.05, .95 ) )
x[ x < quantiles[1] ] <- quantiles[1]
x[ x > quantiles[2] ] <- quantiles[2]
x
                  }

但这不适用于我的情况,因为我想在上面的等式中分别使用第95和第5百分位数。请提出任何想法。

1 个答案:

答案 0 :(得分:3)

这是你在找什么?

your_fun <- function(x,y){
    qx <- quantile(x,c(.05,.95))
    qy <- quantile(y,c(.05,.95))
    out <- diff(qx)/diff(qy)
    out2 <- out + qy[1]

    names(out) <- NULL
    names(out2) <- NULL
    list(res=out,res2=out2)
}

your_fun(d,xi)

给出了

$res
[1] 1

$res2
[1] 3.95