Main Content

データセット配列変数のデータにアクセス

この例では、データセット配列変数とそのデータを操作する方法を示します。

名前で変数にアクセスします。

変数 (列) 名とドット インデックスを使用すると、変数データにアクセスしたり、変数のサブセットを選択することができます。標本のデータセット配列を読み込みます。hospital 内の変数の名前を表示します。

load hospital 
hospital.Properties.VarNames(:)
ans = 7x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }

このデータセット配列には 7 つの変数 (列) と 100 件の観測 (行) があります。ワークスペース ウィンドウで hospital をダブルクリックすると、変数エディターでデータセット配列を表示できます。

ヒストグラムをプロットします。

変数 Weight のデータのヒストグラムをプロットします。

figure
histogram(hospital.Weight)

Figure contains an axes object. The axes object contains an object of type histogram.

このヒストグラムから、体重は二峰性分布であることがわかります。

カテゴリ別にデータをプロットします。

Sex の値 (Male と Female) 別に Weight の箱ひげ図を作成します。ここでは、変数 Sex をグループ化変数として使用します。

figure
boxplot(hospital.Weight,hospital.Sex)

Figure contains an axes object. The axes object contains 14 objects of type line.

この箱ひげ図から、性別が体重の二峰性に影響していることが考えられます。

変数のサブセットを選択します。

変数 LastNameSexWeight のみが格納されている新しいデータセット配列を作成します。名前または列番号で変数にアクセスすることができます。

ds1 = hospital(:,{'LastName','Sex','Weight'});
ds2 = hospital(:,[1,2,4]);

データセット配列 ds1ds2 は同じものです。データセット配列のインデックス付けに小かっこ ( ) を使用して、データ型を維持します。これにより、データセット配列のサブセットからデータセット配列が作成されます。また、変数エディターを使用して変数や観測のサブセットから新しいデータセット配列を作成することもできます。

変数のデータ型を変換します。

変数 Smoker のデータ型を、論理変数から NoYes のラベルをもつノミナル変数に変換します。

hospital.Smoker = nominal(hospital.Smoker,{'No','Yes'});
class(hospital.Smoker)
ans = 
'nominal'

データの確認

Smoker の最初の 10 個の要素を表示します。

hospital.Smoker(1:10)
ans = 10x1 nominal
     Yes 
     No 
     No 
     No 
     No 
     No 
     Yes 
     No 
     No 
     No 

ノミナル配列のレベル ラベルを変更するには、setlabels を使用します。

変数を追加します。

変数 BloodPressure は 100 行 2 列の配列です。最初の列は収縮期血圧を表し、2 番目の列は拡張期血圧を表しています。この配列を SysPressureDiaPressure の 2 つの変数に分割します。

hospital.SysPressure = hospital.BloodPressure(:,1);
hospital.DiaPressure = hospital.BloodPressure(:,2);
hospital.Properties.VarNames(:)
ans = 9x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }
    {'SysPressure'  }
    {'DiaPressure'  }

データセット配列 hospital に新しい 2 つの変数が追加されています。

名前で変数を検索します。

regexp を使用して、名前に 'Pressure' が含まれている変数を hospital から検索します。該当する変数だけが格納されている新しいデータセット配列を作成します。

bp = regexp(hospital.Properties.VarNames,'Pressure');
bpIdx = cellfun(@isempty,bp);
bpData = hospital(:,~bpIdx);
bpData.Properties.VarNames(:)
ans = 3x1 cell
    {'BloodPressure'}
    {'SysPressure'  }
    {'DiaPressure'  }

新しいデータセット配列 bpData には血圧を示す変数のみが格納されています。

変数を削除します。

データセット配列 hospital から変数 BloodPressure を削除します。

hospital.BloodPressure = [];
hospital.Properties.VarNames(:)
ans = 8x1 cell
    {'LastName'   }
    {'Sex'        }
    {'Age'        }
    {'Weight'     }
    {'Smoker'     }
    {'Trials'     }
    {'SysPressure'}
    {'DiaPressure'}

このデータセット配列から変数 BloodPressure がなくなりました。

参考

関連する例

詳細