2013-05-20 292 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

相關問題