Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

groupcounts

グループの要素数

R2019a 以降

説明

テーブル データ

G = groupcounts(T,groupvars) は、table または timetable T に対応する一意のグループ化変数の組み合わせ、各グループのメンバー数、各グループが表すデータのパーセンテージ ([0, 100] の範囲) を返します。グループは、同じ一意の値の組み合わせをもつ groupvars の変数の行により定義されます。出力 table の各行は 1 つのグループに対応しています。たとえば、G = groupcounts(T,"HealthStatus") は、変数 HealthStatus の各グループの数とパーセンテージを含む table を返します。

G = groupcounts(T,groupvars,groupbins) は、グループ化の前にビン化スキーム groupbins に従って groupvars の行をビン化するよう指定します。たとえば、G = groupcounts(T,"SaleDate","year") は、グループ化変数 SaleDate に従って、各年内の T におけるすべての販売のグループの件数とグループのパーセンテージを返します。

G = groupcounts(___,Name,Value) は、前述の任意の構文について名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。たとえば、G = groupcounts(T,"Category1","IncludeMissingGroups",false) は、Category1<undefined> で示される categorical 型の欠損データからなるグループを除外します。

配列データ

B = groupcounts(A) は、ベクトル、行列、または cell 配列 A の各グループのメンバー数を返します。グループは、同じ一意の値の組み合わせをもつ A の列ベクトルの行により定義されます。B の各行は、1 つのグループについての件数を含みます。

B = groupcounts(A,groupbins) は、グループ化の前にビン化スキーム groupbins に従ってデータをビン化するよう指定します。

B = groupcounts(___,Name,Value) は、入力配列についての前述の構文のいずれかについて、名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。

[B,BG,BP] = groupcounts(A,___) は追加のグループ情報を返します。BGB の行に対応する一意のグループ化ベクトルの組み合わせです。BPB の各グループ カウントが表すデータのパーセンテージです。パーセンテージの範囲は [0, 100] です。

すべて折りたたむ

table データに基づいて、各グループの要素数を計算します。

8 人の個人に関する情報を含む table T を作成します。

HealthStatus = categorical(["Poor"; "Good"; "Fair"; "Fair"; "Poor"; "Excellent"; "Good"; "Excellent"]);
Smoker = logical([1; 0; 0; 1; 1; 0; 0; 1]);
Weight = [176; 153; 131; 133; 119; 120; 140; 129];
T = table(HealthStatus,Smoker,Weight)
T=8×3 table
    HealthStatus    Smoker    Weight
    ____________    ______    ______

     Poor           true       176  
     Good           false      153  
     Fair           false      131  
     Fair           true       133  
     Poor           true       119  
     Excellent      false      120  
     Good           false      140  
     Excellent      true       129  

個人を健康状態でグループ化し、各グループにいる個人のパーセンテージを数値で返します。

G1 = groupcounts(T,"HealthStatus")
G1=4×3 table
    HealthStatus    GroupCount    Percent
    ____________    __________    _______

     Excellent          2           25   
     Fair               2           25   
     Good               2           25   
     Poor               2           25   

個人を健康状態と喫煙状況でグループ化し、各グループにいる個人のパーセンテージを数値で返します。既定では、groupcounts は要素数がゼロのグループを表示しないため、グループ化変数値の一意の組み合わせのうち一部は返されません。

G2 = groupcounts(T,["HealthStatus","Smoker"])
G2=6×4 table
    HealthStatus    Smoker    GroupCount    Percent
    ____________    ______    __________    _______

     Excellent      false         1          12.5  
     Excellent      true          1          12.5  
     Fair           false         1          12.5  
     Fair           true          1          12.5  
     Good           false         2            25  
     Poor           true          2            25  

要素数がゼロのグループを含めて、グループごとに行を返すには、IncludeEmptyGroupstrue に指定します。

G3 = groupcounts(T,["HealthStatus","Smoker"],"IncludeEmptyGroups",true)
G3=8×4 table
    HealthStatus    Smoker    GroupCount    Percent
    ____________    ______    __________    _______

     Excellent      false         1          12.5  
     Excellent      true          1          12.5  
     Fair           false         1          12.5  
     Fair           true          1          12.5  
     Good           false         2            25  
     Good           true          0             0  
     Poor           false         0             0  
     Poor           true          2            25  

指定されたビンに従ってデータをグループ化します。

1 か月以内の日数分の売上情報が含まれる timetable を作成します。

TimeStamps = datetime([2017 3 4; 2017 3 2; 2017 3 15; 2017 3 10; ...
                       2017 3 14; 2017 3 31; 2017 3 25; ...
                       2017 3 29; 2017 3 21; 2017 3 18]);
Profit = [2032 3071 1185 2587 1998 2899 3112 909 2619 3085]';
ItemsSold = [14 13 8 5 10 16 8 6 7 11]';
TT = timetable(TimeStamps,Profit,ItemsSold)
TT=10×2 timetable
    TimeStamps     Profit    ItemsSold
    ___________    ______    _________

    04-Mar-2017     2032        14    
    02-Mar-2017     3071        13    
    15-Mar-2017     1185         8    
    10-Mar-2017     2587         5    
    14-Mar-2017     1998        10    
    31-Mar-2017     2899        16    
    25-Mar-2017     3112         8    
    29-Mar-2017      909         6    
    21-Mar-2017     2619         7    
    18-Mar-2017     3085        11    

品目番号の区間にグループをビン化し、販売済み品目の合計数別にグループ カウントを計算します。

G = groupcounts(TT,"ItemsSold",[0 4 8 12 16])
G=3×3 table
    disc_ItemsSold    GroupCount    Percent
    ______________    __________    _______

       [4, 8)             3           30   
       [8, 12)            4           40   
       [12, 16]           3           30   

曜日ごとにビン化されたグループ カウントを計算します。

G = groupcounts(TT,"TimeStamps","dayname")
G=5×3 table
    dayname_TimeStamps    GroupCount    Percent
    __________________    __________    _______

        Tuesday               2           20   
        Wednesday             2           20   
        Thursday              1           10   
        Friday                2           20   
        Saturday              3           30   

複数回出現するベクトル内の要素を判別します。

1 から 5 までの値をもつ列ベクトルを作成します。

A = [1 1 2 2 3 5 3 3 1 4]';

ベクトル内の一意のグループを判別し、グループ メンバーをカウントします。

[B,BG] = groupcounts(A)
B = 5×1

     3
     2
     3
     1
     1

BG = 5×1

     1
     2
     3
     4
     5

カウントが 1 を超えるグループの論理インデックスを作成して、複数回出現するベクトル内の要素を判別します。グループにインデックスを付けて、重複しているベクトル要素を返します。

duplicates = BG(B > 1)
duplicates = 3×1

     1
     2
     3

健康状態と喫煙状況によりグループ化された集団のグループ カウントを計算します。

8 人の個人に関する情報を異なるタイプの 3 つのベクトルとして保存します。

HealthStatus = categorical(["Poor"; "Good"; "Fair"; "Fair"; "Poor"; "Excellent"; "Good"; "Excellent"]);
Smoker = logical([1; 0; 0; 1; 1; 0; 0; 1]);
Weight = [176; 153; 131; 133; 119; 120; 140; 129];

健康状態と喫煙状況でグループ化し、グループ カウントを計算します。3 つの出力を指定し、グループ BG とグループ カウントのパーセンテージ BP も返します。

BG は、行基準で要素を見た場合のグループを表す 2 つのベクトルを含む cell 配列です。たとえば、BG{1} の最初の行からは、最初のグループの個人の健康状態が Excellent であることがわかり、BG{2} の最初の行からは、これらの患者が非喫煙者であることがわかります。最後に、BP には、BG の対応する各グループのメンバーのパーセンテージが格納されます。

[B,BG,BP] = groupcounts({HealthStatus,Smoker},"IncludeEmptyGroups",true);
B
B = 8×1

     1
     1
     1
     1
     2
     0
     0
     2

BG{1}
ans = 8x1 categorical
     Excellent 
     Excellent 
     Fair 
     Fair 
     Good 
     Good 
     Poor 
     Poor 

BG{2}
ans = 8x1 logical array

   0
   1
   0
   1
   0
   1
   0
   1

BP
BP = 8×1

   12.5000
   12.5000
   12.5000
   12.5000
   25.0000
         0
         0
   25.0000

入力引数

すべて折りたたむ

入力 table。table または timetable として指定します。

入力配列。列ベクトル、行列として保存された列ベクトルのグループ、または列ベクトル、文字の行ベクトル、行列の cell 配列として指定します。

グループ化変数またはベクトル。次の表のオプションのいずれかとして指定します。入力データが table または timetable の場合、groupvars はデータ内のグループの計算にどの変数を使用するかを表します。groupvars で指定されていないその他の変数は演算されず、出力に渡されません。

インデックス方式

変数名:

  • string、文字ベクトル、または cell 配列

  • pattern オブジェクト

  • "A" または 'A'A という名前の変数

  • ["A","B"] または {'A','B'}A および B という名前の 2 つの変数

  • "Var"+digitsPattern(1)"Var" の後に数字 1 桁が続く名前の変数

変数インデックス:

  • table 内の変数の位置を参照するインデックス番号

  • 数値のベクトル

  • logical ベクトル。通常、このベクトルの長さは変数の数と同じですが、末尾の 0 値や false 値は省略できます。

  • 3 — table の 3 番目の変数

  • [2 3] — table の 2 番目と 3 番目の変数

  • [false false true] — 3 番目の変数

関数ハンドル:

  • 入力として table 変数をとり、logical スカラーを返す関数ハンドル

  • @isnumeric — 数値を含んでいるすべての変数

変数の型:

  • 指定した型の変数を選択する vartype 添字

  • vartype("numeric") — 数値を含んでいるすべての変数

例: groupcounts(T,"Var3")

ビン化スキーム。次のオプションのいずれかとして指定します。

  • ビン化しないことを示す "none"

  • 数値ベクトル、または datetime ベクトル (datetime グループ化変数またはベクトルの場合) として指定されるビン エッジのリスト

  • 正の整数スカラーとして指定されるビンの数

  • ビンの幅を示す duration 型または calendarDuration 型のスカラーとして指定される時間範囲 (datetime または duration グループ化変数またはベクトルの場合のみ)

  • 各グループ化変数またはベクトルのビン化方法をリストする cell 配列

  • 次のいずれかの string として指定される時間ビン (datetime または duration グループ化変数またはベクトルの場合のみ)

    説明データ型
    "second"

    各ビンは 1 秒です。

    datetimeduration
    "minute"

    各ビンは 1 分です。

    datetimeduration
    "hour"

    各ビンは 1 時間です。

    datetimeduration
    "day"

    各ビンは 1 カレンダー日です。この値には、夏時間のシフトが考慮されます。

    datetimeduration
    "week"各ビンは 1 カレンダー週です。datetime のみ
    "month"各ビンは 1 カレンダー月です。datetime のみ
    "quarter"各ビンは 1 カレンダー四半期です。datetime のみ
    "year"

    各ビンは 1 カレンダー年です。この値には、うるう日が考慮されます。

    datetimeduration
    "decade"各ビンは 10 年 (10 カレンダー年) です。datetime のみ
    "century"各ビンは 1 世紀 (100 カレンダー年) です。datetime のみ
    "secondofminute"

    ビンは 0 から 59 までの秒です。

    datetime のみ
    "minuteofhour"

    ビンは 0 から 59 までの分です。

    datetime のみ
    "hourofday"

    ビンは 0 から 23 までの時間です。

    datetime のみ
    "dayofweek"

    ビンは 1 から 7 までの曜日です。週の始まりは日曜日です。

    datetime のみ
    "dayname"ビンは "Sunday" などの完全な曜日名です。datetime のみ
    "dayofmonth"ビンは 1 から 31 までの日です。datetime のみ
    "dayofyear"ビンは 1 から 366 までの日です。datetime のみ
    "weekofmonth"ビンは 1 から 6 までの週です。datetime のみ
    "weekofyear"ビンは 1 から 54 までの週です。datetime のみ
    "monthname"ビンは "January" などの完全な月名です。datetime のみ
    "monthofyear"

    ビンは 1 から 12 までの月です。

    datetime のみ
    "quarterofyear"ビンは 1 から 4 までの四半期です。datetime のみ

複数のグループ化変数またはグループ化ベクトルを指定する場合、すべてのグループ化変数またはベクトルに適用される 1 つのビン化方法を指定したり、グループ変数またはベクトルごとのビン化方法が格納される cell 配列 ({"none",[0 2 4 Inf]} など) を指定したりできます。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: G = groupcounts(T,groupvars,groupbins,IncludedEdge="right")

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: G = groupcounts(T,groupvars,groupbins,"IncludedEdge","right")

含めるビン エッジ。"left" または "right" のいずれかとして指定し、ビン区間のどちらの端が含まれるかを示します。

この名前と値の引数は、groupbins が指定され、かつその値によりすべてのグループ化変数またはグループ化ベクトルにすべてのビン化スキームが適用される場合にのみ指定できます。

欠損グループ インジケーター。数値または logical 1 (true) または 0 (false) として指定します。IncludeMissingGroups の値が true の場合、groupcounts には NaN などの欠損値で構成されたグループが表示されます。IncludeMissingGroups の値が false の場合、欠損値グループは groupcounts に表示されません。

空のグループ インジケーター。数値または logical 0 (false) または 1 (true) として指定します。IncludeEmptyGroups の値が false の場合、要素がゼロのグループは groupcounts に表示されません。IncludeEmptyGroups の値が true の場合、groupcounts には空のグループが表示されます。

出力引数

すべて折りたたむ

table または timetable 入力データの出力 table。G には計算されたグループ、各グループの要素数、および各グループ カウントで表されるパーセンテージが含まれます。グループ化変数が 1 つの場合、"sorted" オプションを指定した関数 unique により返された順序に従って、出力グループが並べ替えられます。

配列の入力データのグループ カウント。列ベクトルとして返されます。B には各グループの要素数が含まれます。

配列の入力データのグループ。列ベクトルまたは列ベクトルの cell 配列として返されます。グループ化ベクトルが 1 つの場合、"sorted" オプションを指定した関数 unique により返された順序に従って、出力グループが並べ替えられます。

入力ベクトルが複数ある場合、BG は長さの等しい列ベクトルを含む cell 配列になります。各グループの情報は、BG のすべてのベクトルにまたがる行の要素に格納されます。各グループは、出力配列 B の対応する行にマッピングされます。

配列の入力データのグループ カウントのパーセンテージ。列ベクトルとして返されます。BP には B の各グループのパーセンテージ (範囲は [0, 100]) が含まれます。

ヒント

  • groupcounts を何度も呼び出す場合、可能であればパフォーマンス向上のためグループ変数を categorical 型または logical 型に変換することを検討してください。たとえば、string 配列のグループ化変数 (要素が "Poor""Fair""Good""Excellent" である HealthStatus など) がある場合、categorical(HealthStatus) コマンドを使用してこれを categorical 変数に変換することができます。

拡張機能

バージョン履歴

R2019a で導入

すべて展開する