如何获得R中百分位数的平均值?

时间:2014-10-23 07:47:32

标签: r

我有一个值向量,我需要计算该向量中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))
}

有没有更有效的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您的数据位于数据框中,则可以进行子集化:

mean(d$foo[d$foo < quantile(d$foo, .9), ])