Main Content

reordercats

categorical 配列のカテゴリの並べ替え

説明

B = reordercats(A) は、categorical 配列 A のカテゴリを英数字順に並べ替えます。

カテゴリの順序は、関数 summaryhistogram などで使用されます。categorical 配列が順序配列である場合、カテゴリの順序はそれらの数学的な順序を定義します。最初に指定されるカテゴリは最小で、最後に指定されるカテゴリは最大になります。

B = reordercats(A,neworder) は、neworder で指定された順序でカテゴリを並べ替えます。

すべて折りたたむ

2 つの categorical 配列 X および Y を作成します。

X = categorical({'frog';'cat';'cat';'ant';'frog'})
X = 5x1 categorical
     frog 
     cat 
     cat 
     ant 
     frog 

Y = categorical({'deer';'bear';'eagle';'deer'})
Y = 4x1 categorical
     deer 
     bear 
     eagle 
     deer 

X は 5 行 1 列の categorical 配列です。X のカテゴリは、次の配列から並べ替えられた一意の値です。{'ant';'cat';'frog'}

Y は 4 行 1 列の categorical 配列です。Y のカテゴリは、次の配列から並べ替えられた一意の値です。{'bear';'deer';'eagle'}

XY を 1 つの categorical 配列 A に連結します。

A = [X;Y]
A = 9x1 categorical
     frog 
     cat 
     cat 
     ant 
     frog 
     deer 
     bear 
     eagle 
     deer 

vertcat は、Y からの値を X からの値に追加します。

categorical 配列 A のカテゴリを一覧表示します。

acats = categories(A)
acats = 6x1 cell
    {'ant'  }
    {'cat'  }
    {'frog' }
    {'bear' }
    {'deer' }
    {'eagle'}

vertcat は、Y のカテゴリを X からのカテゴリに追加します。A のカテゴリは、アルファベット順に "表示されません"。

A のカテゴリをアルファベット順に並べ替えます。

B = reordercats(A)
B = 9x1 categorical
     frog 
     cat 
     cat 
     ant 
     frog 
     deer 
     bear 
     eagle 
     deer 

出力 categorical 配列 B の要素とその順序は入力 categorical 配列 A と同じです。

categorical 配列 B のカテゴリを一覧表示します。

bcats = categories(B)
bcats = 6x1 cell
    {'ant'  }
    {'bear' }
    {'cat'  }
    {'deer' }
    {'eagle'}
    {'frog' }

B のカテゴリは、アルファベット順に表示されます。

さまざまな項目の色を含む categorical 配列を作成します。

A = categorical({'red';'green';'blue';'red';'green';'red';'blue';'blue'})
A = 8x1 categorical
     red 
     green 
     blue 
     red 
     green 
     red 
     blue 
     blue 

A は 8 行 1 列の categorical 配列です。

A のカテゴリを表示します。

categories(A)
ans = 3x1 cell
    {'blue' }
    {'green'}
    {'red'  }

A のカテゴリはアルファベット順で、数学的な意味をもちません。

通常の色の順序に合わせてカテゴリを並べ替えます。

B = reordercats(A,{'red','green','blue'})
B = 8x1 categorical
     red 
     green 
     blue 
     red 
     green 
     red 
     blue 
     blue 

B は、A と同じ値を含みます。

B のカテゴリを表示します。

categories(B)
ans = 3x1 cell
    {'red'  }
    {'green'}
    {'blue' }

B は順序配列ではないため、カテゴリの順序には数学的な意味はありません。カテゴリは色スペクトルの順序で表示されますが、> (より大きい) や< (より小さい) などの関係演算子は意味をもちません。

交通手段を含む順序 categorical 配列 A を作成します。旅行の平均価格に基づいてカテゴリを並べ替えます。

A = categorical({'plane';'car'; 'train';'car';'plane';'car'},...
    {'car','train','plane'},'Ordinal',true)
A = 6x1 categorical
     plane 
     car 
     train 
     car 
     plane 
     car 

A は 6 行 1 列の順序 categorical 配列です。

A のカテゴリを表示します。

categories(A)
ans = 3x1 cell
    {'car'  }
    {'train'}
    {'plane'}

A は順序配列であるため、car < train < plane となります。

電車旅行の費用の低下を反映するようにカテゴリを並べ替えます。

B = reordercats(A,{'train','car','plane'})
B = 6x1 categorical
     plane 
     car 
     train 
     car 
     plane 
     car 

B は、A と同じ値を含みます。

B のカテゴリを表示します。

categories(B)
ans = 3x1 cell
    {'train'}
    {'car'  }
    {'plane'}

カテゴリの数学的な順序は train < car < plane になります。関係演算子 minmax の結果には、新しいカテゴリ順序が反映されます。

交通手段を含む categorical 配列 A を作成します。

A = categorical({'plane';'car';'train';'car';'car';'plane';'car'})
A = 7x1 categorical
     plane 
     car 
     train 
     car 
     car 
     plane 
     car 

A のカテゴリを表示します。

categories(A)
ans = 3x1 cell
    {'car'  }
    {'plane'}
    {'train'}

A に含まれる数が少ないものから多いものの順にカテゴリを並べ替えます。

B = countcats(A);
[C,neworder] = sort(B);
neworder
neworder = 3×1

     3
     2
     1

D = reordercats(A,neworder);
categories(D)
ans = 3x1 cell
    {'train'}
    {'plane'}
    {'car'  }

countcats はカテゴリごとの出現をカウントするため、neworderA の要素ではなくカテゴリを並べ替える方法を指定します。

categorical 配列を作成します。この配列には、"はい" と "いいえ" を表すさまざまなカテゴリがあります。

C = categorical(["Y" "Yes" "Yeah" "N" "No" "Nope"])
C = 1x6 categorical
     Y      Yes      Yeah      N      No      Nope 

カテゴリを順番に一覧表示します。MATLAB® は文字を Unicode® として保存するため、既定ではこれらのカテゴリの並べ替え順序はアルファベット順です。

categories(C)
ans = 6x1 cell
    {'N'   }
    {'No'  }
    {'Nope'}
    {'Y'   }
    {'Yeah'}
    {'Yes' }

patternを使用すると、複数のカテゴリ名を一致させることができます。たとえば、Y で始まるカテゴリ名を指定するには、ワイルドカード パターンを使用できます。ワイルドカード パターンを作成するには、関数wildcardPatternを使用します。

カテゴリを並べ替えます。並べ替え順序を変更し、Y で始まるカテゴリが N で始まるカテゴリより前になるようにします。

C = reordercats(C,["Y"+wildcardPattern,"N"+wildcardPattern])
C = 1x6 categorical
     Y      Yes      Yeah      N      No      Nope 

カテゴリを新しい順序で一覧表示します。

categories(C)
ans = 6x1 cell
    {'Y'   }
    {'Yeah'}
    {'Yes' }
    {'N'   }
    {'No'  }
    {'Nope'}

入力引数

すべて折りたたむ

入力配列。categorical 配列として指定します。A が順序 categorical 配列である場合は、カテゴリの並べ替えにより、数学的な意味が変更されます。その結果、 > (より大きい) や < (より小さい) などの関係演算子で、異なる結果が返される場合があります。

B の新しいカテゴリ順序。string 配列、文字ベクトルの cell 配列、数値ベクトル、または pattern 配列として指定します。newordercategories(A) の置換でなければなりません。

ヒント

  • categorical 配列 B を順序 categorical 配列に変換するには、B = categorical(B,'Ordinal',true) を使用します。カテゴリの順序は B = categorical(B,valueset,'Ordinal',true) で指定できます。この場合、valueset の値の順序でカテゴリ順が定義されます。

拡張機能

バージョン履歴

R2013b で導入