カテゴリ レベルでの並べ替え
メモ
nominal
配列データ型および ordinal
配列データ型は推奨されません。順序付きおよび順序付けのない離散非数値データを表すには、代わりにcategorical 配列データ型を使用します。
順序配列のカテゴリ レベルでの並べ替え
この例では、reorderlevels
を使用して順序配列のカテゴリ レベルを並べ替える方法を示します。
標本データを読み込みます。
AllSizes = {'medium','large','small','small','medium',... 'large','medium','small'};
作成された変数 AllSizes
は、8 つのオブジェクトのサイズ測定値が含まれている文字ベクトルの cell 配列です。
順序配列を作成します。
AllSizes
を順序配列に変換しますが、カテゴリ レベルの順序は指定しません。
size = ordinal(AllSizes); getlevels(size)
ans = 1x3 ordinal
large medium small
既定では、カテゴリはラベルを基準にアルファベットの昇順で並べ替えられるため、large
、medium
、small
の順になります。
要素を比較します。
最初のオブジェクト (サイズが medium
) が 2 番目のオブジェクト (サイズが large
) より小さいかどうかを確認します。
size(1) < size(2)
ans = logical
0
論理値 0
は medium のオブジェクトが large のオブジェクトより小さくないことを表します。
カテゴリ レベルを並べ替えます。
カテゴリ レベルを並べ替えて、順序を small
、medium
、large
の順にします。
size = reorderlevels(size,{'small','medium','large'}); getlevels(size)
ans = 1x3 ordinal
small medium large
要素を比較します。
最初のオブジェクトが 2 番目のオブジェクトより小さいことを確認します。
size(1) < size(2)
ans = logical
1
論理値 1
は、想定されている不等式が成立していることを表します。
ノミナル配列のカテゴリ レベルでの並べ替え
この例では、reorderlevels
を使用してノミナル配列のカテゴリ レベルを並べ替える方法を示します。定義上、ノミナル配列のカテゴリには自然な順序がありません。しかし、表示や解析のためにレベルの順序の変更が必要になる場合があります。たとえば、カテゴリカル共変量で回帰モデルを近似する場合、fitlm
はノミナル独立変数の最初のレベルを基準カテゴリとして使用します。
標本データを読み込みます。
データセット配列 hospital
には 100 名のサンプル患者に関して測定された変数が格納されます。変数 Weight
には各患者の体重が格納されます。変数 Sex
は各患者の性別 (Male
または Female
) が格納されるノミナル変数です。
load hospital
getlevels(hospital.Sex)
ans = 1x2 nominal
Female Male
既定では、ノミナル カテゴリの順序はラベルのアルファベットの昇順です。
カテゴリ レベル別にデータをプロットします。
性別ごとの体重の箱ひげ図を作成します。
figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')
箱ひげ図は getlevels
が返すアルファベット順と同じ順序で表示されます。
カテゴリの順序を変更します。
カテゴリ レベルの順序を変更します。
hospital.Sex = reorderlevels(hospital.Sex,{'Male','Female'}); getlevels(hospital.Sex)
ans = 1x2 nominal
Male Female
レベルの順序が新しく指定した順序に変わります。
新しい順序でデータをプロットします。
性別ごとの体重の箱ひげ図を作成します。
figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')
箱ひげ図の順序は新しいレベルの順序に対応しています。
参考
nominal
| ordinal
| getlevels
| fitlm
| reorderlevels