我有数据(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百分位数。请提出任何想法。
答案 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