我有一个值向量,我需要计算该向量中90%最差值的平均值。 我提出了以下(程序)功能:
percentile_worst <- function(d, p = 0.9) {
quant = quantile(d, p)
worst = c()
for (t in seq(1, length(d))) {
if (d[t] <= quant) {
worst = c(worst, d[t])
}
}
return(mean(worst))
}
有没有更有效的方法来做到这一点?
答案 0 :(得分:0)
如果您的数据位于数据框中,则可以进行子集化:
mean(d$foo[d$foo < quantile(d$foo, .9), ])