このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。
データ分割のためのグループ化変数
グループ化変数を使用してデータ変数をグループに分割できます。通常、グループ化変数を選択することが "分割-適用-結合" のワークフローの最初の手順です。データをグループに分割し、各グループに関数を適用して、その結果を結合できます。また、データ変数内の対応する値が無視されるよう、グループ化変数内の欠損値を指定することもできます。
グループ化変数
"グループ化変数" とは、観測値のグループ化や分類に使用される変数で、これは別の変数内のデータ値です。グループ化変数は次のデータ型で使用できます。
数値、論理値、categorical、
datetime
またはduration
ベクトル文字ベクトルの cell 配列
このリスト内の任意のデータ型のテーブル変数をもつテーブル
"データ変数" とは、観測値を含む変数です。グループ化変数は、データ変数内の各値に対応する値をもたなければなりません。グループ化変数内の対応する値が同じ場合、データ値は同じグループに属します。
次の表は、グループ化変数を使用してデータ変数を分割した場合に作成できるデータ変数、グループ化変数およびグループの例を示しています。
データ変数 | グループ化変数 | データのグループ |
---|---|---|
|
|
|
|
|
|
|
|
|
文字ベクトルの cell 配列または categorical 配列をグループ化変数として使用する場合、データのグループに有意な名前を設定できます。categorical 配列を使用すると、グループ化変数を効率的かつ柔軟に選択できます。
グループ定義
通常、グループ化変数の一意の値と同じ数だけグループの数が存在します (categorical 配列は、データで表されていないカテゴリも含むことができます)。グループの内訳と順序は、グループ化変数のデータ型によって決まります。
数値、論理値、
datetime
またはduration
の各ベクトル、あるいは文字ベクトルの cell 配列の場合、グループは昇順に並べ替えられた一意の値に対応します。categorical 配列の場合、グループは、関数
categories
に返された順序に並べ替えられた、配列内で観測された一意の値に対応します。
関数 findgroups
は、G = findgroups(A1,A2)
などの複数のグループ化変数を受け取ることができます。また、T = table(A1,A2); G = findgroups(T)
などの複数のグループ化変数をテーブルに含めることもできます。関数 findgroups
は、グループ化変数の対応する要素全体において一意に定まる値の組み合わせによってグループを定義します。findgroups
は、1 番目のグループ化変数の順序、次に 2 番目のグループ化変数の順序などと続けることで順序を決定します。たとえば、A1 = {'a','a','b','b'}
および A2 = [0 1 0 0]
の場合、グループ化変数全体で一意となる値は 'a' 0
、'a' 1
および 'b' 0
となり、3 つのグループが定義されます。
分割-適用-結合のワークフロー
グループ化変数を選択してデータ変数をグループに分割した後、グループに関数を適用してその結果を結合できます。このワークフローは、分割-適用-結合のワークフローと呼ばれます。関数 findgroups
と splitapply
を併用して、このワークフローでデータのグループを分析できます。次の図は、グループ化変数 Gender
とデータ変数 Height
を使用して性別による平均身長を計算する簡単な例を示しています。
関数 findgroups
はグループ化変数の一意な値に基づいてグループを定義する "グループ番号" のベクトルを返します。splitapply
は、関数の適用前に、グループ番号を使用して効率的にデータをグループに分割します。
グループの欠損値
グループ化変数は欠損値をもつことができます。次の表は、各データ型の欠損値インジケーターを示しています。グループ化変数が欠損値をもつ場合、findgroups
は NaN
をそのグループ番号として代入し、splitapply
はデータ変数内の対応する値を無視します。
グループ化変数のデータ型 | 欠損値インジケーター |
---|---|
数値 |
|
論理値 | (欠損不可) |
categorical |
|
|
|
|
|
文字ベクトルの cell 配列 |
|
string |
|
参考
findgroups
| splitapply
| rowfun
| varfun