Main Content

観測値の追加と削除

この例では、データセット配列内の観測値の追加と削除を行う方法を示します。また、変数エディターでデータセット配列を編集することもできます。

標本データを読み込みます。

hospitalSmall.xlsx の最初のワークシートからデータセット配列にデータをインポートします。

ds = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'));
size(ds)
ans =

    14     6

データセット配列 ds には 14 件の観測 (行) と 6 個の変数 (列) があります。

連結により観測を追加します。

hospitalSmall.xlsx の 2 番目のワークシートには追加の患者データがあります。このスプレッドシートの観測を ds の末尾に付加します。

ds2 = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'),'Sheet',2);
dsNew = [ds;ds2];
size(dsNew)
ans =

    22     6

データセット配列 dsNew には 22 件の観測値があります。2 つのデータセット配列を垂直に連結するには、両方の配列の変数の数が同じで、変数名も同じでなければなりません。

cell 配列から観測を追加します。

cell 配列に格納されている新しい観測を付加するには、まず cell 配列をデータセット配列に変換してから、データセット配列を連結します。

cellObs = {'id','name','sex','age','wgt','smoke';
               'YQR-965','BAKER','M',36,160,0;
               'LFG-497','WALL' ,'F',28,125,1;
               'KSD-003','REED' ,'M',32,187,0};
dsNew = [dsNew;cell2dataset(cellObs)];
size(dsNew)
ans =

    25     6

構造体から観測を追加します。

構造体に格納されている新しい観測を付加することもできます。構造体をデータセット配列に変換してから、データセット配列を連結します。

structObs(1,1).id = 'GHK-842';
structObs(1,1).name = 'GEORGE';
structObs(1,1).sex = 'M';
structObs(1,1).age = 45;
structObs(1,1).wgt = 182;
structObs(1,1).smoke = 1;

structObs(2,1).id = 'QRH-308';
structObs(2,1).name = 'BAILEY';
structObs(2,1).sex = 'F';
structObs(2,1).age = 29;
structObs(2,1).wgt = 120;
structObs(2,1).smoke = 0;

dsNew = [dsNew;struct2dataset(structObs)];
size(dsNew)
ans =

    27     6

重複する観測値を削除します。

unique を使用して、データセット配列内で重複している観測をすべて削除します。

dsNew = unique(dsNew);
size(dsNew)
ans =

    21     6

重複していた観測が 1 件削除されています。

観測番号に基づいて観測値を削除します。

データセット配列から観測値 18、20、21 を削除します。

dsNew([18,20,21],:) = [];
size(dsNew)
ans =

    18     6

データセット配列内の観測値が 18 件になりました。

観測名に基づいて観測値を削除します。

まず、識別子の変数 id を観測名として指定します。次に、変数 iddsNew から削除します。観測名を使用して観測のインデックスを付けることができます。

dsNew.Properties.ObsNames = dsNew.id;
dsNew.id = [];
dsNew('KOQ-996',:) = [];
size(dsNew)
ans =

    17     5

データセット配列の観測数が 1 件少なくなり、変数も 1 個少なくなります。

削除する観測を検索します。

データセット配列の観測を検索することもできます。たとえば、WILLIAMS という姓の患者の観測をすべて削除します。

toDelete = strcmp(dsNew.name,'WILLIAMS');
dsNew(toDelete,:) = [];
size(dsNew)
ans =

    16     5
データセット配列内の観測が 1 件少なくなりました。

参考

| |

関連する例

詳細