このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
groupsummary
グループ要約の計算
構文
説明
テーブル データ
は、前述の任意の構文について名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。たとえば、G
= groupsummary(___,Name,Value
)G = groupsummary(T,"Category1","IncludeMissingGroups",false)
は、Category1
の <undefined>
で示される categorical
型の欠損データからなるグループを除外します。
配列データ
は、入力配列についての前述の構文のいずれかについて、名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。B
= groupsummary(___,Name,Value
)
例
要約統計量
table 変数の要約統計量を計算します。
8 人の個人に関する情報を含む table T
を作成します。
HealthStatus = categorical(["Poor"; "Good"; "Fair"; "Fair"; "Poor"; "Excellent"; "Good"; "Excellent"]); Age = [38; 43; 38; 40; 49; 51; 52; 35]; Height = [71; 68; 64; 67; 64; 62; 65; 55]; Weight = [176; 153; 131; 133; 119; 120; 140; 129]; T = table(HealthStatus,Age,Height,Weight)
T=8×4 table
HealthStatus Age Height Weight
____________ ___ ______ ______
Poor 38 71 176
Good 43 68 153
Fair 38 64 131
Fair 40 67 133
Poor 49 64 119
Excellent 51 62 120
Good 52 65 140
Excellent 35 55 129
グループ化変数として HealthStatus
を指定して、健康状態グループのカウントを計算します。
G = groupsummary(T,"HealthStatus")
G=4×2 table
HealthStatus GroupCount
____________ __________
Excellent 2
Fair 2
Good 2
Poor 2
各健康状態グループの平均年齢、身長、体重を計算します。
G = groupsummary(T,"HealthStatus","mean")
G=4×5 table
HealthStatus GroupCount mean_Age mean_Height mean_Weight
____________ __________ ________ ___________ ___________
Excellent 2 43 58.5 124.5
Fair 2 39 65.5 132
Good 2 47.5 66.5 146.5
Poor 2 43.5 67.5 147.5
健康状態でグループ化して、平均身長のみを計算します。
G = groupsummary(T,"HealthStatus","median","Height")
G=4×3 table
HealthStatus GroupCount median_Height
____________ __________ _____________
Excellent 2 58.5
Fair 2 65.5
Good 2 66.5
Poor 2 67.5
複数のグループ化変数
2 つのグループ化変数を使用してテーブル データをグループ化します。
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
健康状態および喫煙状態でグループ化した、平均体重を計算します。既定では、健康状態と喫煙状態の一部の組み合わせは空のグループであるため、出力に表されません。
G = groupsummary(T,["HealthStatus","Smoker"],"mean","Weight")
G=6×4 table
HealthStatus Smoker GroupCount mean_Weight
____________ ______ __________ ___________
Excellent false 1 120
Excellent true 1 129
Fair false 1 131
Fair true 1 133
Good false 2 146.5
Poor true 2 147.5
IncludeEmptyGroups
の値を true
に設定して、空の組み合わせを含む、すべてのグループの組み合わせを表示します。
G = groupsummary(T,["HealthStatus","Smoker"],"mean","Weight","IncludeEmptyGroups",true)
G=8×4 table
HealthStatus Smoker GroupCount mean_Weight
____________ ______ __________ ___________
Excellent false 1 120
Excellent true 1 129
Fair false 1 131
Fair true 1 133
Good false 2 146.5
Good true 0 NaN
Poor false 0 NaN
Poor true 2 147.5
グループ ビンの指定
指定されたビンに従ってデータをグループ化します。
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
品目番号の区間にグループをビン化し、販売済み品目別にビン化された利益の平均とモードを計算します。
format shorte G = groupsummary(TT,"ItemsSold",[0 4 8 12 16],{"mean","mode"},"Profit")
G=3×4 table
disc_ItemsSold GroupCount mean_Profit mode_Profit
______________ __________ ___________ ___________
[4, 8) 3.0000e+00 2.0383e+03 9.0900e+02
[8, 12) 4.0000e+00 2.3450e+03 1.1850e+03
[12, 16] 3.0000e+00 2.6673e+03 2.0320e+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
Tuesday
Wednesday
Thursday
Friday
Saturday
dailyCounts = 5×1
2
2
1
2
3
ベクトル入力の複数のグループ化ベクトル
健康状態と喫煙状況によりグループ化された集団の平均体重を計算します。
個人に関する情報を異なるタイプの 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];
健康状態と喫煙状況でグループ化し、平均体重を計算します。
B
には各グループの平均値 (空のグループの場合は NaN
) が格納されます。BG
は、行基準で要素を見た場合のグループを表す 2 つのベクトルを含む cell 配列です。たとえば、BG{1}
の最初の行からは、最初のグループの患者の健康状態が Excellent
であることがわかり、BG{2}
の最初の行からは、これらの患者が非喫煙者であることがわかります。最後に、BC
には、BG
の対応する各グループのメンバー数が格納されます。
[B,BG,BC] = groupsummary(Weight,{HealthStatus,Smoker},"mean","IncludeEmptyGroups",true); B
B = 8×1
120.0000
129.0000
131.0000
133.0000
146.5000
NaN
NaN
147.5000
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
BC
BC = 8×1
1
1
1
1
2
0
0
2
複数の入力のあるメソッドの関数ハンドル
患者情報を含むデータを読み込み、各患者のいる場所、収縮期および拡張期の血圧、身長、体重を記述する table を作成します。
load patients
Location = categorical(Location);
T = table(Location,Systolic,Diastolic,Height,Weight)
T=100×5 table
Location Systolic Diastolic Height Weight
_________________________ ________ _________ ______ ______
County General Hospital 124 93 71 176
VA Hospital 109 77 69 163
St. Mary's Medical Center 125 83 64 131
VA Hospital 117 75 67 133
County General Hospital 122 80 64 119
St. Mary's Medical Center 121 70 68 142
VA Hospital 130 88 64 142
VA Hospital 115 82 68 180
St. Mary's Medical Center 115 78 68 183
County General Hospital 118 86 66 132
County General Hospital 114 77 68 128
St. Mary's Medical Center 115 68 66 137
VA Hospital 127 74 71 174
VA Hospital 130 95 72 202
St. Mary's Medical Center 114 79 65 129
VA Hospital 130 92 71 181
⋮
場所でグループ化し、患者の身長と体重の間の相関と収縮期および拡張期の血圧の間の相関を計算します。相関を計算する方法として関数 xcov
を使用します。xcov
の最初の 2 つの入力引数は相関するデータを記述し、3 番目の引数はラグ サイズを記述し、4 番目の引数は正規化の種類を記述します。各グループ計算で、xcov
に渡される引数 x
と y
は、2 つの cell 要素 ["Height","Systolic"]
と ["Weight","Diastolic"]
の変数によってペアで指定されます。
G = groupsummary(T,"Location",@(x,y) xcov(x,y,0,"coeff"),{["Height","Systolic"],["Weight","Diastolic"]})
G=3×4 table
Location GroupCount fun1_Height_Weight fun1_Systolic_Diastolic
_________________________ __________ __________________ _______________________
County General Hospital 39 0.65483 0.44187
St. Mary's Medical Center 24 0.62047 0.44466
VA Hospital 37 0.78438 0.62256
あるいは、データが table ではなくベクトルまたは行列形式である場合、相関するデータを groupsummary
の最初の入力引数として提供できます。
[B,BG,BC] = groupsummary({[Height,Systolic],[Weight,Diastolic]},Location,@(x,y) xcov(x,y,0,"coeff"))
B = 3×2
0.6548 0.4419
0.6205 0.4447
0.7844 0.6226
BG = 3x1 categorical
County General Hospital
St. Mary's Medical Center
VA Hospital
BC = 3×1
39
24
37
入力引数
T
— 入力テーブル
table | timetable
入力 table。table または timetable として指定します。
A
— 入力配列
列ベクトル | 行列 | cell 配列
入力配列。列ベクトル、行列として保存された列ベクトルのグループ、または列ベクトル、文字の行ベクトル、行列の cell 配列として指定します。
複数の入力引数を受け入れる method
の関数ハンドルを指定する場合、入力配列 A
は列ベクトル、文字の行ベクトル、行列の cell 配列でなければなりません。グループ単位での関数の各呼び出しでは、入力引数は cell 配列の各要素の対応する列です。以下に例を示します。
groupsummary({x1,y1},groupvars,@(x,y) myFun(x,y))
は各グループのmyFun(x1,y1)
を計算します。groupsummary({[x1 x2],[y1 y2]},groupvars,@(x,y) myFun(x,y))
は最初に各グループのmyFun(x1,y1)
を計算し、次に各グループのmyFun(x2,y2)
を計算します。
groupvars
— グループ化変数またはベクトル
スカラー | ベクトル | 行列 | cell 配列 | 関数ハンドル | table vartype
添字
グループ化変数またはベクトル。次のオプションのいずれかとして指定します。
配列の入力データの場合、
groupvars
はA
と同じ行数をもつ列ベクトルか、行列内あるいは cell 配列内に配置した列ベクトルのグループのいずれかにすることができます。入力データが table または timetable の場合、
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")
例: groupsummary(T,"Var3")
method
— 計算メソッド
"sum"
| "mean"
| "median"
| "mode"
| "var"
| "std"
| "min"
| "max"
| "range"
| "nummissing"
| "nnz"
| "all"
| 関数ハンドル | cell 配列
計算メソッド。次の値のいずれかとして指定します。
メソッド | 説明 |
---|---|
"sum" | 総和 |
"mean" | 平均値 |
"median" | 中央値 |
"mode" | モード |
"var" | 分散 |
"std" | 標準偏差 |
"min" | 最小値 |
"max" | 最大値 |
"range" | 最大値から最小値を引いた値 |
"nummissing" | 欠損要素の数 |
"nnz" | 非ゼロと非 |
"all" | 前述のすべての計算 |
最初の次元の長さが 1 であるグループごとに 1 つの出力を返す関数ハンドルとして method
を指定することもできます。table 入力データの場合、関数はそれぞれの table 変数に対して個別に演算を行います。
入力データが table T
であり、複数の入力引数を受け入れる method
の関数ハンドルを指定する場合、datavars
を指定しなければなりません。datavars
引数は、cell 配列 (その要素が、メソッドへの各入力に使用する table 変数を示す) でなければなりません。グループ単位での関数の各呼び出しでは、入力引数は cell 配列の要素の対応する table 変数です。以下に例を示します。
groupsummary(T,groupvars,@(x,y) myFun(x,y),{"x1","y1"})
は各グループのmyFun(T.x1,T.y1)
を計算します。groupsummary(T,groupvars,@(x,y) myFun(x,y),{["x1" "x2"],["y1" "y2"]})
は最初に各グループのmyFun(T.x1,T.y1)
を計算し、次に各グループのmyFun(T.x2,T.y2)
を計算します。
入力データがベクトルまたは行列であり、複数の入力引数を受け入れる method
の関数ハンドルを指定する場合、入力データ A
はベクトルまたは行列の cell 配列でなければなりません。関数の各呼び出しでは、入力引数は cell 配列の各要素の対応する列です。以下に例を示します。
groupsummary({x1,y1},groupvars,@(x,y) myFun(x,y))
は各グループのmyFun(x1,y1)
を計算します。groupsummary({[x1 x2],[y1 y2]},groupvars,@(x,y) myFun(x,y))
は最初に各グループのmyFun(x1,y1)
を計算し、次に各グループのmyFun(x2,y2)
を計算します。
一度に複数の計算を指定するには、{"mean","median"}
または {myFun1,myFun2}
などのように cell 配列にオプションをリストします。
入力データ内の NaN
値は、"nummissing"
を除いて、ここで説明されているメソッド名を使用すると自動的に省略されます。NaN
値を含めるには、メソッドで "sum"
の代わりに @sum
などの関数ハンドルを使用します。
データ型: char
| string
| cell
| function_handle
datavars
— 演算の対象とする table 変数
スカラー | ベクトル | cell 配列 | 関数ハンドル | table vartype
添字
演算の対象とする table 変数。次の表のオプションのいずれかとして指定します。datavars
は、メソッドを適用する入力 table または timetable の変数を示します。datavars
で指定されていないその他の変数は演算されず、出力に渡されません。datavars
が指定されない場合、groupsummary
はそれぞれの非グループ化変数を処理します。
オプション | 説明 | 例 |
---|---|---|
変数名 | 単一の table 変数名を指定する文字ベクトルまたは string スカラー |
|
変数名のベクトル | 各要素が table 変数名である、文字ベクトルの cell 配列または string 配列 |
|
変数インデックスのスカラーまたはベクトル | table 変数インデックスのスカラーまたはベクトル |
|
logical ベクトル | 各要素が table 変数に対応する logical ベクトル。 |
|
関数ハンドル | 入力として table 変数をとり、logical スカラーを返す関数ハンドル |
|
vartype 添字 | 関数 |
|
入力データが table T
であり、複数の入力引数を受け入れる method
の関数ハンドルを指定する場合、datavars
を指定しなければなりません。datavars
引数は、その要素がこの表のオプションのいずれかである cell 配列でなければなりません。cell 配列の要素は、メソッドへの各入力に使用する table 変数を示します。グループ単位での関数の各呼び出しでは、入力引数は cell 配列の要素の対応する table 変数です。以下に例を示します。
groupsummary(T,groupvars,@(x,y) myFun(x,y),{"x1","y1"})
は各グループのmyFun(T.x1,T.y1)
を計算します。groupsummary(T,groupvars,@(x,y) myFun(x,y),{["x1" "x2"],["y1" "y2"]})
は最初に各グループのmyFun(T.x1,T.y1)
を計算し、次に各グループのmyFun(T.x2,T.y2)
を計算します。
例: groupsummary(T,groupvars,method,["Var1" "Var2" "Var4"])
groupbins
— ビン化スキーム
"none"
(既定値) | スカラー | ベクトル | cell 配列
ビン化スキーム。次のオプションのいずれかとして指定します。
ビン化しないことを示す
"none"
数値ベクトル、または
datetime
ベクトル (datetime
グループ化変数またはベクトルの場合) として指定されるビン エッジのリスト正の整数スカラーとして指定されるビンの数
ビンの幅を示す
duration
型またはcalendarDuration
型のスカラーとして指定される時間範囲 (datetime
またはduration
グループ化変数またはベクトルの場合のみ)各グループ化変数またはベクトルのビン化方法をリストする cell 配列
次のいずれかの string として指定される時間ビン (
datetime
またはduration
グループ化変数またはベクトルの場合のみ)値 説明 データ型 "second"
各ビンは 1 秒です。
datetime
とduration
"minute"
各ビンは 1 分です。
datetime
とduration
"hour"
各ビンは 1 時間です。
datetime
とduration
"day"
各ビンは 1 カレンダー日です。この値には、夏時間のシフトが考慮されます。
datetime
とduration
"week"
各ビンは 1 カレンダー週です。 datetime
のみ"month"
各ビンは 1 カレンダー月です。 datetime
のみ"quarter"
各ビンは 1 カレンダー四半期です。 datetime
のみ"year"
各ビンは 1 カレンダー年です。この値には、うるう日が考慮されます。
datetime
とduration
"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 = groupsummary(T,groupvars,groupbins,IncludedEdge="right")
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: G = groupsummary(T,groupvars,groupbins,"IncludedEdge","right")
IncludedEdge
— 含めるビン エッジ
"left"
(既定値) | "right"
含めるビン エッジ。"left"
または "right"
のいずれかとして指定し、ビン区間のどちらの端が含まれるかを示します。
この名前と値の引数は、groupbins
が指定され、かつその値によりすべてのグループ化変数またはグループ化ベクトルにすべてのビン化スキームが適用される場合にのみ指定できます。
IncludeMissingGroups
— 欠損グループ インジケーター
true
または 1
(既定値) | false
または 0
欠損グループ インジケーター。数値または logical 1
(true
) または 0
(false
) として指定します。IncludeMissingGroups
の値が true
の場合、groupsummary
には NaN
などの欠損値で構成されたグループが表示されます。IncludeMissingGroups
の値が false
の場合、欠損値グループは groupcounts
に表示されません。
IncludeEmptyGroups
— 空のグループ インジケーター
false
または 0
(既定値) | true
または 1
空のグループ インジケーター。数値または logical 1
(true
) または 0
(false
) として指定します。IncludeEmptyGroups
の値が false
の場合、要素がゼロのグループは groupsummary
に表示されません。IncludeEmptyGroups
の値が true
の場合、groupsummary
には空のグループが表示されます。
出力引数
G
— 出力テーブル
table
table または timetable 入力データの出力 table。G
には計算されたグループ、各グループの要素数、および method
を指定した場合は指定した計算の結果が含まれます。
B
— 出力配列
ベクトル | 行列
配列の入力データの出力配列。ベクトルまたは行列として返されます。B
にはグループ別に指定された計算が含まれます。複数の方法を指定した場合、groupsummary
はリストされた順序で計算を横方向に連結します。
BG
— グループ
列ベクトル | 列ベクトルの cell 配列
配列の入力データのグループ。列ベクトルまたは列ベクトルの cell 配列として返されます。グループ化ベクトルが 1 つの場合、"sorted"
オプションを指定した関数 unique
により返された順序に従って、出力グループが並べ替えられます。
入力ベクトルが複数ある場合、BG
は長さの等しい列ベクトルを含む cell 配列になります。各グループの情報は、BG
のすべてのベクトルにまたがる行の要素に格納されます。各グループは、出力配列 B
の対応する行にマッピングされます。
BC
— グループ カウント
列ベクトル
配列の入力データのグループ カウント。列ベクトルとして返されます。BC
には各グループの要素数が含まれます。BC
の長さは、BG
で返されるグループ列ベクトルの長さと同じです。
ヒント
groupsummary
を何度も呼び出す場合、可能であればパフォーマンス向上のためグループ変数をcategorical
型またはlogical
型に変換することを検討してください。たとえば、string 配列のグループ化変数 (要素が"Poor"
、"Fair"
、"Good"
、"Excellent"
であるHealthStatus
など) がある場合、categorical(HealthStatus)
コマンドを使用してこれを categorical 変数に変換することができます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
A
とgroupvars
が両方とも tall 行列の場合、その行数は同じでなければなりません。最初の入力が tall 行列の場合、
groupvars
を tall グループ化ベクトルを含む cell 配列にすることができます。引数
groupvars
と引数datavars
は関数ハンドルをサポートしていません。名前と値の引数
IncludeEmptyGroups
はサポートされていません。"median"
メソッドと"mode"
メソッドはサポートされていません。tall datetime 配列の場合、
"std"
メソッドはサポートされていません。引数
method
が関数ハンドルの場合は、tall 配列を扱うsplitapply
の有効な入力でなければなりません。関数ハンドルが複数の入力を受け入れる場合、groupsummary
への最初の入力は tall table でなければなりません。グループの順序は、インメモリ
groupsummary
の計算と比べ異なっている場合があります。離散化された datetime 配列によってグループ化する場合、カテゴリのグループ名はインメモリ
groupsummary
計算と比べ異なっています。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
スパース入力はサポートされません。
datetime データと duration データの場合、ビン化スキームはサポートされません。
可変サイズのコンテンツが格納された異種混合 cell 配列は入力データとしてサポートされません。
多次元配列が含まれる入力 table はサポートされません。
文字ベクトルの cell 配列、または cell 配列の cell 配列が含まれる入力データはサポートされません。
計算メソッドは定数でなければなりません。
最初の入力引数が table である場合、グループ化変数は定数でなければなりません。
データ変数は定数でなければなりません。
文字ベクトルまたは string として指定するビン化スキームは定数でなければなりません。
名前と値の引数は定数でなければなりません。
計算メソッドはスパースまたは多次元の結果を返すことはできません。
グループ変数の数が実行時に変動する可能性がある場合、2 番目の出力
BG
は cell 配列です。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2018a で導入R2022b: 標準欠損値がない文字配列
文字配列には、標準欠損値の既定の定義がありません。このため、nummissing
メソッドは、空白文字の配列要素 (' '
) を非欠損として扱います。
R2022a: コード生成のサポート
関数 groupsummary
の C または C++ コードを生成します。使用上の注意事項および制限事項については、C/C++ コード生成を参照してください。
R2022a: グループ サイズが小さい場合のパフォーマンスが向上
関数 groupsummary
は、特に各グループのデータ数が少ない場合に、パフォーマンスが向上しています。
たとえば、次のコードでは、それぞれ 10 カウントの 500 のグループをもつ行列に対してグループ要約の計算を実行しています。直前のリリースと比較して、このコードは約 2.70 倍速くなっています。
function timingGroupsummary data = (1:5000)'; groups = repelem(1:length(data)/10,10)'; p = randperm(length(data)); data = data(p); groups = groups(p); tic for k = 1:300 G = groupsummary(data,groups,"mean"); end toc end
おおよその実行時間は以下のとおりです。
R2021b: 2.65 秒
R2022a: 0.98 秒
このコードの時間測定では、Windows® 10、Intel® Xeon® CPU E5-1650 v4 @ 3.60 GHz を使用するテスト システムで、関数 timingGroupsummary
を呼び出しました。
R2022a: 標準欠損値がないデータ型の受け入れ
"nummissing"
および "nnz"
メソッドで、標準欠損値の既定の定義がない入力データ型を使用してもエラーは発生しないようになりました。
このような入力に対して MATLAB がスローしていたエラーを使用するコード (try
/catch
ブロック内のコードなど) は、そうしたエラーをキャッチしなくなる可能性があります。
参考
関数
grouptransform
|groupfilter
|groupcounts
|findgroups
|splitapply
|discretize
|varfun
|rowfun
|convertvars
|vartype
ライブ エディター タスク
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)