0

我有要进行一些计算的数据(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 个百分位数。请有任何想法。

4

1 回答 1

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
于 2013-05-20T09:00:13.927 回答