メインコンテンツ

mergecats

categorical 配列のカテゴリをマージする

説明

B = mergecats(A,oldcats) は、categorical 配列の 2 つ以上のカテゴリを 1 つのカテゴリにマージします。既定では、mergecats は、oldcats にリストされているすべてのカテゴリを、oldcats(1) と同じ名前の新しいカテゴリにマージします。A の要素が oldcats にリストされているカテゴリに属している場合、B の対応する要素は oldcats(1) に属します。

B = mergecats(A,oldcats,newcat) は、oldcats にリストされているすべてのカテゴリを、newcat で指定された名前をもつ単一の新しいカテゴリにマージします。

すべて折りたたむ

さまざまな色のカテゴリを含む categorical 配列を作成します。

A = categorical(["pink" "blue" "pink" "red" "blue" "red"])
A = 1×6 categorical
     pink      blue      pink      red      blue      red 

A のカテゴリを表示します。3 つのカテゴリはアルファベット順に並んでいます。

categories(A)
ans = 3×1 cell
    {'blue'}
    {'pink'}
    {'red' }

カテゴリ red および pink をカテゴリ red にマージします。oldcatsred を最初に指定し、マージされるカテゴリとして使用します。mergecats は、値 pinkred に置き換えます。

oldcats = ["red" "pink"];
B = mergecats(A,oldcats)
B = 1×6 categorical
     red      blue      red      red      blue      red 

B のカテゴリを表示します。新しい配列ではカテゴリ数が減っています。

categories(B)
ans = 2×1 cell
    {'blue'}
    {'red' }

さまざまな衣類品のカテゴリを含む categorical 配列を作成します。

A = categorical(["shirt" "pants" "shoes" "shirt" "dress" "belt"])
A = 1×6 categorical
     shirt      pants      shoes      shirt      dress      belt 

A のカテゴリを表示します。順序を指定しなかった場合、カテゴリはアルファベット順になります。

categories(A)
ans = 5×1 cell
    {'belt' }
    {'dress'}
    {'pants'}
    {'shirt'}
    {'shoes'}

カテゴリ belt および shoesother という新規カテゴリにマージします。値 otherbelt および shoes のすべてのインスタンスを置き換えます。

B = mergecats(A,["belt" "shoes"],"other")
B = 1×6 categorical
     shirt      pants      other      shirt      dress      other 

B のカテゴリを表示します。新しい配列には 4 つのカテゴリがあり、順序はアルファベット順ではなくなっています。other は、置き換える最初のカテゴリである belt の代わりに表示されています。

categories(B)
ans = 4×1 cell
    {'other'}
    {'dress'}
    {'pants'}
    {'shirt'}

順序 categorical 配列を作成します。

A = categorical([1 2 3 2 1],1:3,["poor" "fair" "good"],Ordinal=true)
A = 1×5 categorical
     poor      fair      good      fair      poor 

A のカテゴリを表示します。カテゴリは、数学的な順序 poor < fair < good になります。

categories(A)
ans = 3×1 cell
    {'poor'}
    {'fair'}
    {'good'}

すべての fair 値または poor 値を bad という新しいカテゴリにマージします。A には順序があるため、マージするカテゴリは連続していなければなりません。連続していない場合、mergecats は数学的な順序をもつ新しいカテゴリ セットを作成できません。

B = mergecats(A,["fair" "poor"],"bad")
B = 1×5 categorical
     bad      bad      good      bad      bad 

B のカテゴリを表示します。新しい配列には、数学的な順序をもつ 2 つのカテゴリ (bad < good) があります。

categories(B)
ans = 2×1 cell
    {'bad' }
    {'good'}

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

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

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

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

名前が Y で始まるすべてのカテゴリを、yes という名前の 1 つのカテゴリにマージします。次に、名前が N で始まるすべてのカテゴリを、no という名前の 1 つのカテゴリにマージします。その結果、同じ意味をもつ値がすべて同じカテゴリに含まれることになります。これで、C のカテゴリは 2 つだけになりました。

C = mergecats(C,"Y" + wildcardPattern,"yes");
C = mergecats(C,"N" + wildcardPattern,"no")
C = 1×6 categorical
     yes      yes      yes      no      no      no 

categories(C)
ans = 2×1 cell
    {'no' }
    {'yes'}

入力引数

すべて折りたたむ

入力配列。categorical 配列として指定します。

マージするカテゴリ。string 配列、文字ベクトルの cell 配列、または pattern スカラーとして指定します。

  • A が順序配列の場合、oldcats では連続するカテゴリのサブセットを指定する必要があります。連続していない場合、mergecats は数学的な順序をもつ新しいカテゴリ セットを作成できません。

  • A が非順序配列の場合、oldcats ではカテゴリの任意のサブセットを指定できます。

新規カテゴリ。string スカラーまたは文字ベクトルとして指定します。

拡張機能

すべて展開する

バージョン履歴

R2013b で導入