数値データの要約(summary関数)を使うと、R言語では簡単に4分位数(25%パーセンタイル、中央値、75%パーセンタイル)を計算できます。でも、いわゆるパーセンタイル値(100分位数)は簡単に計算できないようです。(関数を知らないだけかもしれないです)今回は、任意の長さのデータベクトルの各要素のパーセンタイル値を計算する方法を紹介します。
rank関数を利用する
ベクトルデータを引数にrank()をすると、各要素を昇順に並べた時の順位が計算されます。
#適当なベクトルデータ vec <- c(86, 82, 98, 72, 42, 37, 35, 71, 27, 100) rank(vec) #[1] 8 7 9 6 4 3 2 5 1 10
あとは、これを少し変換するだけです。100分位数なので100をかけて、ベクトルの長さで割り算します。小数点以下ができたときのために、切り上げも利用しておきます。
vec.percentile <- ceiling((rank(vec)*100)/length(vec))