ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

categorical

カテゴリカル配列の作成

離散カテゴリの有限集合の値をもつデータからカテゴリカル配列を作成するには、categorical を使用します。数値データをカテゴリにグループ化するには、discretize を使用します。

構文

  • B = categorical(A)
  • B = categorical(A,valueset)
  • B = categorical(A,valueset,catnames)
  • B = categorical(A,___,Name,Value)

説明

B = categorical(A) は、配列 A からカテゴリカル配列を作成します。B のカテゴリは、A からの並べ替えられた一意の値です。

カテゴリカル配列の作成と使用方法についての詳細は、「カテゴリカル配列」を参照してください。

B = categorical(A,valueset) は、valueset の値ごとに 1 つのカテゴリを作成します。B のカテゴリは、valueset の値と同じ順序になります。

valueset を使用して、A には存在しない値のカテゴリを含めることができます。逆に、valueset に存在しない値が A に含まれている場合は、B の対応する要素が定義されません。

B = categorical(A,valueset,catnames) は、valueset のカテゴリ値と catnames の名前をマッチングさせて B のカテゴリに名前を付けます。

B = categorical(A,___,Name,Value) では、1 つまたは複数の Name,Value のペア引数で指定された追加オプションを使用して、カテゴリカル配列を作成します。前述の構文のいずれかの入力引数を含めることができます。

たとえば、カテゴリが数学的な順序になるように指定できます。

すべて折りたたむ

文字ベクトルのセル配列をカテゴリカル配列に変換します。

文字ベクトルのセル配列を作成します。

A = {'r' 'b' 'g'; 'g' 'r' 'b'; 'b' 'r' 'g'}
A = 

    'r'    'b'    'g'
    'g'    'r'    'b'
    'b'    'r'    'g'

A は、3 つの一意の値を含む 3 行 3 列のセル配列です。

文字ベクトルのセル配列 A をカテゴリカル配列 B に変換します。

B = categorical(A)
B = 

     r      b      g 
     g      r      b 
     b      r      g 

B の内容は、A の内容と一致します。

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

categories(B)
ans = 

    'b'
    'g'
    'r'

B のカテゴリは、A からのアルファベット順に並べ替えられた一意の値です。

文字ベクトルのセル配列 A をカテゴリカル配列に変換します。A に存在しない値を含むカテゴリのリストを指定します。

文字ベクトルのセル配列を作成します。

A = {'republican' 'democrat'; 'democrat' 'democrat'; 'democrat' 'republican'}
A = 

    'republican'    'democrat'  
    'democrat'      'democrat'  
    'democrat'      'republican'

A は、2 つの一意の値を含む 3 行 2 列のセル配列です。

文字ベクトルのセル配列 A をカテゴリカル配列 B に変換し、independent のカテゴリを含めます。

valueset = {'democrat' 'republican' 'independent'};
B = categorical(A,valueset)
B = 

     republican      democrat   
     democrat        democrat   
     democrat        republican 

B の内容は、A の内容と一致します。

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

categories(B)
ans = 

    'democrat'
    'republican'
    'independent'

B のカテゴリは、valueset で指定された値と同じ順序になります。

文字ベクトルのセル配列を作成します。

A = {'r' 'b' 'g'; 'g' 'r' 'b'; 'b' 'r' 'g'}
A = 

    'r'    'b'    'g'
    'g'    'r'    'b'
    'b'    'r'    'g'

A は、3 つの一意の値を含む 3 行 3 列のセル配列です。

文字ベクトルのセル配列 A をカテゴリカル配列 B に変換し、カテゴリ名を指定します。

B = categorical(A,{'r' 'g' 'b'},{'red' 'green' 'blue'})
B = 

     red        blue      green 
     green      red       blue  
     blue       red       green 

B は、A からの内容に対して指定されたカテゴリ名を使用します。

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

categories(B)
ans = 

    'red'
    'green'
    'blue'

B のカテゴリは、指定された順序になります。

2 行 3 列の数値配列を作成します。

A = gallery('integerdata',3,[2,3],3)
A =

     2     1     2
     1     1     3

A には、値 12 および 3 が含まれます。

数値配列 A をカテゴリカル配列に変換します。値 12 および 3 を使用して、カテゴリ carbusbike をそれぞれ定義します。

valueset = 1:3;
catnames = {'car' 'bus' 'bike'};

B = categorical(A,valueset,catnames)
B = 

     bus      car      bus  
     car      car      bike 

categorical は、valueset の数値を catnames のカテゴリ名にマッピングします。

2 行 3 列のカテゴリカル配列 B は順序配列ではありません。したがって、B の値は等価性についてのみ比較できます。B の値を < (より小さい) や > (より大きい) などの関係演算子を使用して比較するには、'Ordinal',true の名前と値のペアの引数を含めなければなりません。

5 行 2 列の数値配列を作成します。

A = gallery('integerdata',3,[5,2],1)
A =

     3     2
     3     3
     3     2
     2     1
     3     2

A には、値 12 および 3 が含まれます。

数値配列 A を、1、2、3 がそれぞれ、子供、大人、高齢者を表す順序カテゴリカル配列に変換します。

valueset = [1:3];
catnames = {'child' 'adult' 'senior'};

B = categorical(A,valueset,catnames,'Ordinal',true)
B = 

     senior      adult  
     senior      senior 
     senior      adult  
     adult       child  
     senior      adult  

B は順序配列であるため、B のカテゴリは、数学的な順序 child < adult < senior になります。

100 個の乱数を 3 つのカテゴリにビニングするには、関数 discretize (categorical の代わりに) を使用します。

x = rand(100,1);
y = discretize(x,[0 .25 .75 1],'categorical',{'small','medium','large'});
summary(y)
     small       22 
     medium      46 
     large       32 

入力引数

すべて折りたたむ

入力配列。数値配列、論理配列、カテゴリカル配列または文字ベクトルのセル配列として指定します。

A に欠損値が含まれる場合、B の対応する要素は <undefined> になります。欠損値は、数値配列の場合は NaN、文字ベクトルのセル配列の場合は空の文字ベクトル ('')、カテゴリカル配列の場合は <undefined> です。B には、未定義の値のためのカテゴリがありません。欠損値または未定義の値に対する明示的なカテゴリを作成するには、catnames に目的のカテゴリ名を、valueset には NaN、空の文字ベクトル、<undefined> のいずれかを含めなければなりません。

配列だけでなく、A は次のクラス メソッドをもつオブジェクトにすることもできます。

  • unique

  • eq

カテゴリを定義する値。一意の値のベクトルとして指定します。valueset のデータ型と A のデータ型は同じでなければなりません。

カテゴリ名。文字ベクトルのセル配列として指定します。catnames 入力引数を指定しない場合、categoricalvalueset の値をカテゴリ名として使用します。

A の複数の異なる値を B の 1 つのカテゴリにマージするには、それらの値に対応する重複した名前を含めます。

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: 'Ordinal',true は、カテゴリが数学的な順序になることを指定します。

すべて折りたたむ

数学的な順序インジケーター。'Ordinal'falsetrue0 または 1 で構成されるコンマ区切りのペアとして指定します。

false

categorical は、順序ではないカテゴリカル配列を作成します。これは既定の動作です。

B のカテゴリは数学的な順序ではありません。したがって、B の値は等価性についてのみ比較できます。

true

categorical は、順序カテゴリカル配列を作成します。

B のカテゴリには数学的な順序があるため、最初に指定されるカテゴリは最小で、最後のカテゴリは最大になります。B の値は、値の等価性を比較するだけでなく、< (より小さい) や > (より大きい) などの関係演算子を使用して比較できます。

カテゴリ保護インジケーター。'Protected'falsetrue0 または 1 で構成されるコンマ区切りのペアとして指定します。順序カテゴリカル配列のカテゴリは常に保護されます。'Ordinal',true を指定したときの既定値は true で、それ以外の場合は false です。

false

新しい値を B に代入すると、カテゴリは自動的に更新されます。したがって、異なるカテゴリをもつ (非順序) カテゴリカル配列を組み合わせることができます。それに伴って、両方の配列のカテゴリを含めてカテゴリを更新することができます。

true

新しい値を B に代入する場合、値は既存のカテゴリの 1 つに属していなければなりません。したがって、同じカテゴリをもつ配列のみを組み合わせることができます。新しいカテゴリを B に追加するには、関数 addcats を使用しなければなりません。

R2013b で導入

この情報は役に立ちましたか?