メインコンテンツ

removecats

categorical 配列からカテゴリを削除する

説明

B = removecats(A) は categorical 配列からカテゴリを削除します。既定では、removecats は未使用のカテゴリをすべて削除します。出力 categorical 配列 B のサイズと値は、入力 A と同じです。ただし、B のカテゴリの数は少なくなる場合があります。

B = removecats(A,oldcats) は、oldcats で指定されたカテゴリを削除します。この関数はカテゴリを削除しますが、配列の要素は削除しません。そのため、B の要素は、対応する A の要素が oldcats で指定された任意のカテゴリに属している場合は未定義となります。

すべて折りたたむ

未使用のカテゴリを含む categorical 配列を作成します。categorical 配列に未使用のカテゴリが含まれている場合、そのカテゴリに属している配列の要素がないということです。

A = categorical(["red" "blue" "blue" "blue" "red" "blue"], ...
                ["black" "blue" "red" "green"])
A = 1×6 categorical
     red      blue      blue      blue      red      blue 

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

categories(A)
ans = 4×1 cell
    {'black'}
    {'blue' }
    {'red'  }
    {'green'}

categorical 配列を集計します。集計では、カテゴリ black および green に属している要素が存在しないことが示されます。

summary(A)
A: 1×6 categorical

     black      blue      red      green      <undefined> 
     0          4         2        0          0           

未使用のカテゴリを削除します。

B = removecats(A)
B = 1×6 categorical
     red      blue      blue      blue      red      blue 

B の値は A と同じです。

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

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

B を集計します。集計では、未使用のカテゴリがないことが示されます。

summary(B)
B: 1×6 categorical

     blue      red      <undefined> 
     4         2        0           

categorical 配列を作成します。

A = categorical(["plane" "car" "train" "car" "plane" "car"])
A = 1×6 categorical
     plane      car      train      car      plane      car 

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

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

カテゴリ car を削除します。そのカテゴリに属している要素は未定義になっています。

B = removecats(A,"car")
B = 1×6 categorical
     plane      <undefined>      train      <undefined>      plane      <undefined> 

B のカテゴリを表示します。カテゴリ数は A より 1 つ少なくなっています。

categories(B)
ans = 2×1 cell
    {'plane'}
    {'train'}

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

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

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

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

名前が Y で始まるカテゴリを削除します。関数 removecats はカテゴリを削除しますが、入力配列の要素は削除しません。そのため、名前が Y で始まるカテゴリに属する要素は未定義値となります。

C = removecats(C,"Y"+wildcardPattern)
C = 1×6 categorical
     <undefined>      <undefined>      N      No      <undefined>      <undefined> 

categories(C)
ans = 2×1 cell
    {'N' }
    {'No'}

入力引数

すべて折りたたむ

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

削除するカテゴリ。string 配列、文字ベクトル、文字ベクトルの cell 配列、または pattern スカラーとして指定します。既定の設定は、A から得られるすべての未使用カテゴリです。

ヒント

  • ~ismember(categories(A),unique(A)) は、A の未使用カテゴリに対して logical 1 (true) を返します。

拡張機能

すべて展開する

バージョン履歴

R2013b で導入