2013-05-20 199 views
0

我有数据(例如d和di),我想做一些计算。如何分别获得第95和第5百分位数?

数据:

d= 1:20 
xi= 2:21 

我想用这个公式(使用95和单独第5百分位d和十一):

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

我们得到使用本95和第5百分功能(由用户提供的计算器):

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

但这不适用于我的情况我想在上面的公式中分别使用第95和第5百分位数。

回答

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 
+0

非常感谢Frank.is有没有办法只得到第95或第5百分位?请再看看我的等式 – hyat

+1

@ZadSim好的,我编辑了我的问题,在列表中返回'res'和'res2'。对不起,如果我误解了。你可以通过将'res2'放在函数的最后一行来返回。我想你可能很快就想阅读更多关于R的基础知识。这里有一个很好的资源列表:http://stackoverflow.com/tags/r/info – Frank

相关问题