Main Content

カテゴリ レベルでの並べ替え

メモ

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 

既定では、カテゴリはラベルを基準にアルファベットの昇順で並べ替えられるため、largemediumsmall の順になります。

要素を比較します。

最初のオブジェクト (サイズが medium) が 2 番目のオブジェクト (サイズが large) より小さいかどうかを確認します。

size(1) < size(2)
ans = logical
   0

論理値 0 は medium のオブジェクトが large のオブジェクトより小さくないことを表します。

カテゴリ レベルを並べ替えます。

カテゴリ レベルを並べ替えて、順序を smallmediumlarge の順にします。

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')

Figure contains an axes object. The axes object with title Weight by Gender contains 14 objects of type line.

箱ひげ図は 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')

Figure contains an axes object. The axes object with title Weight by Gender contains 14 objects of type line.

箱ひげ図の順序は新しいレベルの順序に対応しています。

参考

| | | |

関連する例

詳細