ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

groupsummary

グループ要約の計算

説明

G = groupsummary(T,groupvars) は、table または timetable である T のデータについて、計算されたグループおよび各グループの要素数を含む table を返します。グループは、groupvars のグループ化変数の一意の組み合わせを含みます。たとえば、G = groupsummary(T,'Gender') は、変数 Gender 内の Male 要素の数と、Female 要素の数を返します。

G = groupsummary(T,groupvars,method) は、method で指定された計算も返します。たとえば、G = groupsummary(T,'Gender','median') は、各グループの要素数に加えて、両方の性別について T 内のすべての非グループ化変数の中央値を返します。

G = groupsummary(T,groupvars,method,datavars) は、計算を適用する変数を指定します。

G = groupsummary(T,groupvars,groupbins) は、groupvars 内のデータをビン化する方法を指定します。たとえば、G = groupsummary(T,'SaleDate','year') は、グループ化変数 SaleDate に従って、各年度内の T のすべての売上げのグループ カウントを与えます。

G = groupsummary(T,groupvars,groupbins,method) は、method で指定された計算について、groupbins に従ってデータをビン化します。

G = groupsummary(T,groupvars,groupbins,method,datavars) は、groupbins に従ってデータをビン化し、計算を適用する変数を指定します。

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

B = groupsummary(A,groupvars,method) は、A がベクトルまたは行列の場合に、groupvars のグループ化ベクトルの一意の組み合わせに従って計算を返します。groupvars は列ベクトル、行列、または列ベクトルの cell 配列にすることができます。

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

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

[B,BG] = groupsummary(A,___) は、各グループ化ベクトルのグループも返します。

[B,BG,BC] = groupsummary(A,___) は、各グループのグループ カウントも返します。

すべて折りたたむ

table 変数の要約統計を計算します。

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

Gender = ["male";"female";"female";"male";"male"];
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
T = table(Gender,Age,Height,Weight)
T=5×4 table
     Gender     Age    Height    Weight
    ________    ___    ______    ______

    "male"      38       71       176  
    "female"    43       69       163  
    "female"    38       64       131  
    "male"      40       67       133  
    "male"      49       64       119  

グループ化変数として 'Gender' を指定して、男性と女性の人数を計算します。

G = groupsummary(T,'Gender')
G=2×2 table
     Gender     GroupCount
    ________    __________

    "female"        2     
    "male"          3     

女性と男性の平均年齢、身長、体重をそれぞれ計算します。

G = groupsummary(T,'Gender','mean')
G=2×5 table
     Gender     GroupCount    mean_Age    mean_Height    mean_Weight
    ________    __________    ________    ___________    ___________

    "female"        2            40.5         66.5            147   
    "male"          3          42.333       67.333         142.67   

性別でグループ化して、平均身長のみを計算します。

G = groupsummary(T,'Gender','median','Height')
G=2×3 table
     Gender     GroupCount    median_Height
    ________    __________    _____________

    "female"        2             66.5     
    "male"          3               67     

2 つのグループ化変数を使用してテーブル データをグループ化します。

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

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  

性別および喫煙状態でグループ化した、平均体重を計算します。既定では、性別と喫煙状態の 2 つの組み合わせは空のグループであるため、出力に表されません。

G = groupsummary(T,{'Gender','Smoker'},'mean','Weight')
G=2×4 table
     Gender     Smoker    GroupCount    mean_Weight
    ________    ______    __________    ___________

    "female"    false         2             148    
    "male"      true          3             142    

'IncludeEmptyGroups' パラメーター値を true に設定して、空の組み合わせを含む、すべてのグループの組み合わせを表示します。

G = groupsummary(T,{'Gender','Smoker'},'mean','Weight','IncludeEmptyGroups',true)
G=4×4 table
     Gender     Smoker    GroupCount    mean_Weight
    ________    ______    __________    ___________

    "female"    false         2             148    
    "female"    true          0             NaN    
    "male"      false         0             NaN    
    "male"      true          3             142    

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

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      

品目番号の区間にグループをビン化し、売却済品目合計でグループ化された平均利益を計算します。

format shorte
G = groupsummary(TT,'TotalItemsSold',[0 4 8 12 16],'mean','Profit')
G=3×3 table
    disc_TotalItemsSold    GroupCount    mean_Profit
    ___________________    __________    ___________

         [4, 8)            3.0000e+00    2.0383e+03 
         [8, 12)           4.0000e+00    2.3450e+03 
         [12, 16]          3.0000e+00    2.6673e+03 

曜日別にグループ化された平均利益を計算します。

G = groupsummary(TT,'TimeStamps','dayname','mean','Profit')
G=5×3 table
    dayname_TimeStamps    GroupCount    mean_Profit
    __________________    __________    ___________

        Tuesday           2.0000e+00    2.3085e+03 
        Wednesday         2.0000e+00    1.0470e+03 
        Thursday          1.0000e+00    3.0710e+03 
        Friday            2.0000e+00    2.7430e+03 
        Saturday          3.0000e+00    2.7430e+03 

日付のベクトルと、対応する利益額のベクトルを作成します。

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]';

曜日別の平均利益を計算します。各グループの平均、グループ名、メンバー数を表示します。

format shorte
[meanDailyProfit,dayOfWeek,dailyCounts] = groupsummary(profit,timeStamps,'dayname','mean')
meanDailyProfit = 5×1

   2.3085e+03
   1.0470e+03
   3.0710e+03
   2.7430e+03
   2.7430e+03

dayOfWeek = 5x1 categorical array
     Tuesday 
     Wednesday 
     Thursday 
     Friday 
     Saturday 

dailyCounts = 5×1

     2
     2
     1
     2
     3

性別と喫煙状況に基づいて、4 つのグループの平均体重を計算します。

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

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

性別と喫煙状況でグループ化し、平均体重を計算します。B には各グループの平均値 (空のグループの場合は NaN) が格納されます。BG は、行基準で要素を見た場合のグループを表す 2 つのベクトルを含む cell 配列です。たとえば、BG{1} の最初の行からは、最初のグループの患者が女性であることがわかり、BG{2} の最初の行からは、これらの患者が非喫煙者であることがわかります。最後に、BC には、BG の対応する各グループのメンバー数が格納されます。

[B,BG,BC] = groupsummary(Weight,{Gender,Smoker},'mean','IncludeEmptyGroups',true);
B
B = 4×1

   148
   NaN
   NaN
   142

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

BG{2}
ans = 4x1 logical array

   0
   1
   0
   1

BC
BC = 4×1

     2
     0
     0
     3

入力引数

すべて折りたたむ

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

入力配列。ベクトルまたは行列として指定します。

グループ化変数またはベクトル。スカラー、ベクトル、行列、cell 配列、または関数ハンドルとして指定します。

入力データが table または timetable の場合、groupvars はグループの計算にどの列を使用するかを表し、次のいずれかにできます。

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

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

  • table 変数インデックスのベクトル

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

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

配列入力の場合、groupvarsA と同じ行数をもつ列ベクトルか、行列内あるいは cell 配列内に配置した列ベクトルのグループのいずれかにすることができます。

例: 'Age'

例: {'Height','Weight'}

計算方法。次のいずれかとして指定します。

  • 'sum' — 和

  • 'mean' — 平均値

  • 'median' — 中央値

  • 'mode' — 最頻値

  • 'var' — 分散

  • 'std' — 標準偏差

  • 'min' — 最小値

  • 'max' — 最大値

  • 'range' — 最大値から最小値を引いた値

  • 'nummissing' — 欠損要素の数

  • 'nnz' — 非ゼロと非 NaN 要素の数

  • 'all' — 前述のすべての計算

また、グループごとに 1 つの要素を返す関数ハンドルを指定することもできます。一度に複数の計算を指定するには、{'mean','median'} などのように cell 配列にオプションをリストします。

table 入力または timetable 入力のデータ変数。スカラー、ベクトル、cell 配列または関数ハンドルとして指定します。datavars はメソッドを適用する入力テーブルの列を示し、次のオプションのいずれかにすることができます。

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

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

  • table 変数インデックスのベクトル

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

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

datavars が指定されない場合、groupsummary はそれぞれの非グループ化変数に計算を適用します。

例: 'Profit'

例: {'Income','Expenses'}

例: @isnumeric

ビン化方式。次のいずれかのオプションとして指定します。

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

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

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

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

  • 次のいずれかの文字ベクトルとして指定される時間ビン (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 のみ

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

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

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

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

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

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

欠損グループ インジケーター。true または false として指定します。パラメーター値が true の場合、groupsummary には NaN などの欠損値で構成されたグループが表示されます。パラメーター値が false の場合、欠損グループは groupsummary に表示されません。

データ型: logical

空のグループ インジケーター。true または false として指定します。パラメーター値が false の場合、要素がゼロのグループは groupsummary に表示されません。パラメーター値が true の場合、groupsummary には空のグループが表示されます。

データ型: logical

出力引数

すべて折りたたむ

出力 table。グループ別に指定された計算が含まれる table として返されます。

出力配列。グループの計算が含まれるベクトルまたは行列として返されます。複数の方法を指定した場合、groupsummary はリストされた順序で計算を連結します。

配列の入力データのグループ。グループ化ベクトルに対応する、列ベクトルまたは列ベクトルの cell 配列として返されます。

複数のグループ化ベクトルが使用されている場合、BG は長さが等しい列ベクトルを含む cell 配列となります。グループ情報を確認するには、BG のすべてのベクトルの要素を行単位で参照します。各グループは、出力配列 B の対応する行にマッピングされます。

配列の入力データのグループ カウント。各グループの要素数が含まれる列ベクトルとして返されます。BC の長さは、BG で返されるグループ列ベクトルの長さと同じです。

ヒント

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

拡張機能

R2018a で導入