Main Content

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

groupcounts

説明

G = groupcounts(T,groupvars) は、table または timetable にある各データ グループの要素数を計算し、グループ、その数、および各数が表す割合 (0 ~ 100) が含まれる table を返します。各グループは、groupvars のグループ化変数の一意の組み合わせによって定義されます。たとえば、G = groupcounts(T,'Gender') は、変数 Gender 内の Male 要素の数、Female 要素の数、その他のカテゴリの数などを示す table を返します。

G = groupcounts(T,groupvars,groupbins) は、groupvars 内のデータをビン化する方法を指定します。たとえば、G = groupcounts(T,'SaleDate','year') は、SaleDate に従って年間販売件数とその割合を返します。

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

B = groupcounts(A) は、列ベクトル、行列、または列ベクトルの cell 配列 A で表されるグループ化ベクトルの一意の組み合わせごとに、グループ カウントを含むベクトルを返します。

B = groupcounts(A,groupbins) は、groupbins に従ってデータをビン化します。

B = groupcounts(___,Name,Value) は、名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。

[B,BG,BP] = groupcounts(A,___) は、B 内のカウントに対応するグループ BG および割合 BP も返します。

すべて折りたたむ

table データからグループの要素数を計算します。

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

Gender = ["male";"female";"male";"female";"male"];
Smoker = logical([1;0;1;0;1]);
Weight = [176;163;131;133;119];
T = table(Gender,Smoker,Weight)
T=5×3 table
     Gender     Smoker    Weight
    ________    ______    ______

    "male"      true       176  
    "female"    false      163  
    "male"      true       131  
    "female"    false      133  
    "male"      true       119  

性別の各グループの要素数をカウントします。

G1 = groupcounts(T,'Gender')
G1=2×3 table
     Gender     GroupCount    Percent
    ________    __________    _______

    "female"        2           40   
    "male"          3           60   

性別と喫煙状況別の各グループの要素数をカウントします。既定で、groupcounts は要素数がゼロのグループを表示しないため、女性の喫煙者または男性の非喫煙者のグループは返されません。

G2 = groupcounts(T,{'Gender','Smoker'})
G2=2×4 table
     Gender     Smoker    GroupCount    Percent
    ________    ______    __________    _______

    "female"    false         2           40   
    "male"      true          3           60   

要素数がゼロのグループを含めてすべてのグループでカウントするには、'IncludeEmptyGroups' パラメーターの値を true に指定します。

G3 = groupcounts(T,{'Gender','Smoker'},'IncludeEmptyGroups',true)
G3=4×4 table
     Gender     Smoker    GroupCount    Percent
    ________    ______    __________    _______

    "female"    false         2           40   
    "female"    true          0            0   
    "male"      false         0            0   
    "male"      true          3           60   

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

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]';
TotalItemsSold = [14 13 8 5 10 16 8 6 7 11]';
TT = timetable(TimeStamps,Profit,TotalItemsSold)
TT=10×2 timetable
    TimeStamps     Profit    TotalItemsSold
    ___________    ______    ______________

    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,'TotalItemsSold',[0 4 8 12 16])
G=3×3 table
    disc_TotalItemsSold    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 までの値をもつ列ベクトルを作成します。

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

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

[gc,grps] = groupcounts(v)
gc = 5×1

     3
     2
     3
     1
     1

grps = 5×1

     1
     2
     3
     4
     5

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

duplicates = grps(gc > 1)
duplicates = 3×1

     1
     2
     3

性別と喫煙状況に基づいて、4 つのグループのグループ カウントを計算します。

患者情報を異なるタイプの 3 つのベクトルとして保存します。

Gender = ["male";"female";"male";"female";"male"];
Smoker = logical([1;0;1;0;1]);
Weight = [176;163;131;133;119];

性別と喫煙状況でグループ化し、グループ カウントを計算します。グループ BG および割合 BP も返すために 3 つの出力を指定します。B の出力には各グループのカウントが格納され、BP にはそれらのカウントで表される割合が格納されます。

[B,BG,BP] = groupcounts({Gender,Smoker},'IncludeEmptyGroups',true)
B = 4×1

     2
     0
     0
     3

BG=1×2 cell array
    {4x1 string}    {4x1 logical}

BP = 4×1

    40
     0
     0
    60

BG は、行基準で要素を見た場合のグループを表す 2 つのベクトルを含む cell 配列です。たとえば、BG{1} の最初の行からは、最初のグループの患者が女性であることがわかり、BG{2} の最初の行からは、これらの患者が非喫煙者であることがわかります。このグループ カウントは 2 であり、B の対応する行にあります。

BG{1}
ans = 4x1 string
    "female"
    "female"
    "male"
    "male"

BG{2}
ans = 4x1 logical array

   0
   1
   0
   1

入力引数

すべて折りたたむ

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

入力ベクトル。グループ化ベクトルを表す列ベクトル、行列、または列ベクトルの cell 配列として指定します。A が行列の場合、グループ化ベクトルは列基準になります。

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

オプション説明
変数名

単一の table 変数名を指定する文字ベクトルまたはスカラー string

'Var1'

"Var1"

変数名のベクトル

各要素が table 変数名である、文字ベクトルの cell 配列または string 配列

{'Var1' 'Var2'}

["Var1" "Var2"]

変数インデックスのスカラーまたはベクトル

table 変数インデックスのスカラーまたはベクトル

1

[1 3 5]

logical ベクトル

各要素が table 変数に対応する logical ベクトル。true の場合は対応する変数を含めて、false の場合は対応する変数を除外します。

[true false true]

関数ハンドル

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

@isnumeric

vartype 添字

関数 vartype によって生成される table の添字

vartype('numeric')

例: groupcounts(T,"Var3")

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

  • 'none' (グループは指定したグループ化変数のみに従って返されることを示す)

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

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

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

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

  • 次のいずれかの文字ベクトルとして指定される時間ビン (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 は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

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

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

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

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

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

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

出力引数

すべて折りたたむ

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

非 table 入力データのグループ カウント。各グループの要素数を含む列ベクトルとして返されます。

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

複数の入力ベクトルが指定された場合、BG は長さの等しい列ベクトルを含む cell 配列になります。グループ情報を確認するには、BG のすべてのベクトルの要素を行単位で参照します。各グループのカウントは、最初の出力引数 B の対応する行に格納されます。

非 table 入力データのグループ カウントの割合。B の各グループ カウントが表す割合を含む列ベクトルとして返されます。割合は [0 100] の範囲になります。

ヒント

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

拡張機能

バージョン履歴

R2019a で導入

すべて展開する