変数の追加と削除
この例では、データセット配列内の変数の追加と削除を行う方法を示します。また、変数エディターでデータセット配列を編集することもできます。
標本データを読み込みます。
hospitalSmall.xlsx
の最初のワークシートからデータセット配列にデータをインポートします。
ds = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx')); size(ds)
ans = 14 6
データセット配列 ds
には 14 件の観測 (行) と 6 個の変数 (列) があります。
データセット配列を連結して変数を追加
hospitalSmall.xlsx
のワークシート Heights
には、最初のワークシートの患者の身長が記録されています。このスプレッドシートのデータを ds
と連結します。
ds2 = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'),'Sheet','Heights'); ds = [ds ds2]; size(ds)
ans = 14 7
データセット配列の変数が 7 件になりました。データセット配列を水平方向に連結できるのは、観測の位置が同じであるか、観測名が同じである場合のみです。
ds.Properties.VarNames{end}
ans = hgt
ds
の最後の変数の名前は hgt
です。これは dataset
がインポートしたスプレッドシートの 1 行目から読み取ったものです。
変数名で変数を削除
まず、変数 id
の一意の識別子を観測名として指定します。その後、変数 id
をデータセット配列から削除します。
ds.Properties.ObsNames = ds.id; ds.id = []; size(ds)
ans = 14 6
データセット配列の変数の数が 6 個になりました。変数名の一覧を表示します。
ds.Properties.VarNames(:)
ans = 'name' 'sex' 'age' 'wgt' 'smoke' 'hgt'
id
という変数はなくなっています。
名前で新しい変数を追加
新しい変数 bmi
をデータセット配列に追加します。この変数には各患者のボディマス指数 (BMI) が格納されます。BMI は身長と体重の関数です。各患者の姓、性別、BMI を表示します。
ds.bmi = ds.wgt*703./ds.hgt.^2; ds(:,{'name','sex','bmi'})
ans = name sex bmi YPL-320 'SMITH' 'm' 24.544 GLI-532 'JOHNSON' 'm' 24.068 PNI-258 'WILLIAMS' 'f' 23.958 MIJ-579 'JONES' 'f' 25.127 XLK-030 'BROWN' 'f' 21.078 TFP-518 'DAVIS' 'f' 27.729 LPD-746 'MILLER' 'f' 26.828 ATA-945 'WILSON' 'm' 24.41 VNL-702 'MOORE' 'm' 27.822 LQW-768 'TAYLOR' 'f' 22.655 QFY-472 'ANDERSON' 'f' 23.409 UJG-627 'THOMAS' 'f' 25.883 XUE-826 'JACKSON' 'm' 24.265 TRW-072 'WHITE' 'm' 29.827
BMI の計算式で使用している演算子 ./
と .^
は、それぞれ要素単位での除算と累乗を示しています。
変数番号に基づく変数の削除
変数 wgt
を削除します。この変数はデータセット配列の 4 番目の変数です。
ds(:,4) = []; ds.Properties.VarNames(:)
ans = 'name' 'sex' 'age' 'smoke' 'hgt' 'bmi'
変数 wgt
がデータセット配列から削除されています。