Main Content

removecats

categorical 配列からのカテゴリの削除

説明

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

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

すべて折りたたむ

4 人で構成される政党を表す categorical 配列を作成します。

A = categorical({'republican' 'democrat' 'democrat' 'republican'},...
    {'democrat' 'republican' 'independent'})
A = 1x4 categorical
     republican      democrat      democrat      republican 

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

categorical 配列 A を集計します。

summary(A)
     democrat      republican      independent 
     2             2               0           

A には 3 つのカテゴリがあります。democratrepublican は配列に 2 回表示され、independent は未使用です。

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

B = removecats(A)
B = 1x4 categorical
     republican      democrat      democrat      republican 

B の値は A と同じです。

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

categories(B)
ans = 2x1 cell
    {'democrat'  }
    {'republican'}

B のカテゴリ数は A より少なくなります。

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

A = categorical({'plane' 'car'; 'train' 'car'; 'plane' 'car'})
A = 3x2 categorical
     plane      car 
     train      car 
     plane      car 

A は 3 行 2 列の categorical 配列です。

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

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

A には、carplanetrain の 3 つのカテゴリがあります。

カテゴリ train を削除します。

B = removecats(A,'train')
B = 3x2 categorical
     plane            car 
     <undefined>      car 
     plane            car 

カテゴリ train からの要素は未定義になります。

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

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

B のカテゴリ数は A より 1 つ少なくなります。

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

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

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

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

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

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

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

入力引数

すべて折りたたむ

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

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

ヒント

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

拡張機能

バージョン履歴

R2013b で導入