如何在swift中计算数组的四分位数?

时间:2016-09-02 10:57:36

标签: ios swift

来自wikipedia

  

四分位数均值(IQM)(或midmean)是统计量的   基于四分位数截断均值的集中趋势   范围。 IQM与体育运动中使用的评分方法非常相似   由一组评委评估:丢弃最低和最低   得分最高;计算剩余分数的平均值。

     

在计算IQM时,只有第二个和第三个数据   使用四分位数(如在四分位数范围内),最低25%   并且最高的25%的分数被丢弃。这些要点是   称为第一和第三四分位数,因此称为IQM的名称。 (注意   第二个四分位数也称为中位数。

1 个答案:

答案 0 :(得分:2)

func interquartile_mean(array: [Double]) -> Double {
    let sorted_array = array.sort()
    let from = Int(array.count*1/4)
    let to = Int(array.count*3/4)
    return Array(sorted_array[from..<to]).average
}
extension Array where Element: DoubleConvertible {
    var total: Element {
        return  Element(reduce(0){ $0 + $1.double })
    }
    var average: Element {
        return  isEmpty ? Element(0) : Element(total.double / Double(count))
    }
}