上下の外れ値を除いた平均値(trimmean)を計算するには?: Notion Formula 解説 (38)

はじめに

Notion Formula の第38回目は、「上下の外れ値を除いた平均値(trimmean)を計算するには?」を解説します。文字列が続いたので、今回はリストに関する話題です。ここで説明しています。

数式

ここでは、リレーション先の「点数」プロパティの trimmean を計算してみます。こちらも長いので少しずつ紹介してみます。

/* 子一覧のリレーションページから点数をマッピング */
prop("子一覧").map(current.prop("点数"))
/* 並び替え */
.sort()
/* 先頭と末尾を取り除く */
.slice(1, -1)
/* 作成した配列の合計を個数で除算 */
.mean()

最初に map で数値のリストが生成されます。その後、sort で並び替えをします。slice で 1 から -1 まで切り出すことで、0 番目と最後の要素が削られます。その後、先日追加された mean で平均をとります。mean ができるまでは、let で削った要素のリストを mid という変数に代入し、総和を個数で割り算する作業をしてました。mean のおかげで let が必要なくなりました。

map sort slice answer
80,90,70,100,30 30,70,80,90,100 70,80,90 80
90,86,77,10,99 10,77,86,90,99 77,86,90 84.33333333333333
100,80,10 10,80,100 80 80
80,90 80,90
80 80

おわりに

今回は「上下の外れ値を除いた平均値(trimmean)を計算するには?」を解説しました。並び替え後に先頭と末尾を取り除くことで、trimmean が実現できるようになりました。