このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
groupcounts
構文
説明
テーブル データ
は、前述の任意の構文について名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。たとえば、G
= groupcounts(___,Name,Value
)G = groupcounts(T,"Category1","IncludeMissingGroups",false)
は、Category1
の <undefined>
で示される categorical
型の欠損データからなるグループを除外します。
配列データ
は、入力配列についての前述の構文のいずれかについて、名前と値の引数を 1 つ以上使用して、追加のグループ化プロパティを指定します。B
= groupcounts(___,Name,Value
)
例
table 変数のグループ化
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
要素数がゼロのグループを含めて、グループごとに行を返すには、IncludeEmptyGroups
を true
に指定します。
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
入力引数
T
— 入力テーブル
table | timetable
入力 table。table または timetable として指定します。
A
— 入力配列
列ベクトル | 行列 | cell 配列
入力配列。列ベクトル、行列として保存された列ベクトルのグループ、または列ベクトル、文字の行ベクトル、行列の cell 配列として指定します。
groupvars
— グループ化変数またはベクトル
スカラー | ベクトル | 行列 | cell 配列 | パターン | 関数ハンドル | table vartype
添字
グループ化変数またはベクトル。次の表のオプションのいずれかとして指定します。入力データが table または timetable の場合、groupvars
はデータ内のグループの計算にどの変数を使用するかを表します。groupvars
で指定されていないその他の変数は演算されず、出力に渡されません。
インデックス方式 | 例 |
---|---|
変数名:
|
|
変数インデックス:
|
|
関数ハンドル:
|
|
変数の型:
|
|
例: groupcounts(T,"Var3")
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 = groupcounts(T,groupvars,groupbins,IncludedEdge="right")
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: G = groupcounts(T,groupvars,groupbins,"IncludedEdge","right")
IncludedEdge
— 含めるビン エッジ
"left"
(既定値) | "right"
含めるビン エッジ。"left"
または "right"
のいずれかとして指定し、ビン区間のどちらの端が含まれるかを示します。
この名前と値の引数は、groupbins
が指定され、かつその値によりすべてのグループ化変数またはグループ化ベクトルにすべてのビン化スキームが適用される場合にのみ指定できます。
IncludeMissingGroups
— 欠損グループ インジケーター
true
または 1
(既定値) | false
または 0
欠損グループ インジケーター。数値または logical 1
(true
) または 0
(false
) として指定します。IncludeMissingGroups
の値が true
の場合、groupcounts
には NaN
などの欠損値で構成されたグループが表示されます。IncludeMissingGroups
の値が false
の場合、欠損値グループは groupcounts
に表示されません。
IncludeEmptyGroups
— 空のグループ インジケーター
false
または 0
(既定値) | true
または 1
空のグループ インジケーター。数値または logical 0
(false
) または 1
(true
) として指定します。IncludeEmptyGroups
の値が false
の場合、要素がゼロのグループは groupcounts
に表示されません。IncludeEmptyGroups
の値が true
の場合、groupcounts
には空のグループが表示されます。
出力引数
G
— 出力テーブル
table
table または timetable 入力データの出力 table。G
には計算されたグループ、各グループの要素数、および各グループ カウントで表されるパーセンテージが含まれます。グループ化変数が 1 つの場合、"sorted"
オプションを指定した関数 unique
により返された順序に従って、出力グループが並べ替えられます。
B
— グループ カウント
列ベクトル
配列の入力データのグループ カウント。列ベクトルとして返されます。B
には各グループの要素数が含まれます。
BG
— グループ
列ベクトル | 列ベクトルの cell 配列
配列の入力データのグループ。列ベクトルまたは列ベクトルの cell 配列として返されます。グループ化ベクトルが 1 つの場合、"sorted"
オプションを指定した関数 unique
により返された順序に従って、出力グループが並べ替えられます。
入力ベクトルが複数ある場合、BG
は長さの等しい列ベクトルを含む cell 配列になります。各グループの情報は、BG
のすべてのベクトルにまたがる行の要素に格納されます。各グループは、出力配列 B
の対応する行にマッピングされます。
BP
— グループ カウントの割合
列ベクトル
配列の入力データのグループ カウントのパーセンテージ。列ベクトルとして返されます。BP
には B
の各グループのパーセンテージ (範囲は [0, 100]
) が含まれます。
ヒント
groupcounts
を何度も呼び出す場合、可能であればパフォーマンス向上のためグループ変数をcategorical
型またはlogical
型に変換することを検討してください。たとえば、string 配列のグループ化変数 (要素が"Poor"
、"Fair"
、"Good"
、"Excellent"
であるHealthStatus
など) がある場合、categorical(HealthStatus)
コマンドを使用してこれを categorical 変数に変換することができます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
最初の入力引数は cell 配列をサポートしません。
引数
groupvars
は関数ハンドルをサポートしません。名前と値の引数
IncludeEmptyGroups
はサポートされていません。グループの順序は、インメモリ
groupcounts
の計算と比べ異なっている場合があります。離散化された datetime 配列によってグループ化する場合、カテゴリのグループ名はインメモリ
groupcounts
計算と比べ異なっています。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
入力引数は、入力データを除きすべて定数でなければなりません。
スパース入力はサポートされません。
datetime データと duration データの場合、ビン化スキームはサポートされません。
グループ変数の数が実行時に変動する可能性がある場合、2 番目の出力
BG
は cell 配列です。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2019a で導入R2022a: コード生成のサポート
関数 groupcounts
の C または C++ コードを生成します。使用上の注意事項および制限事項については、C/C++ コード生成を参照してください。
R2021a: 割合が table
出力に自動的に含まれる
groupcounts
が table または timetable 内のデータに対して演算を行う際は、出力にパーセンテージの table 変数が追加で含まれます。パーセンテージは [0, 100]
の範囲になり、table 変数 Percent
に含まれます。
特定の table 変数を参照するコードには影響しません。ただし、出力 table 内の変数の数に依存するコードは更新が必要な場合があります。
参考
関数
pivot
|grouptransform
|groupsummary
|groupfilter
|findgroups
|splitapply
|discretize
|varfun
|rowfun
ライブ エディター タスク
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)