データセット配列のインデックス処理と検索
メモ
dataset
データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table
データ型を使用します。詳細は、MATLAB table
ドキュメンテーションを参照してください。
インデックス処理と検索の方法
データセット配列のインデックス処理を行う方法は多数あります。たとえば、データセット配列 ds
に対して、次のことができます。
()
を使用して、ds
のサブセットから新しいデータセット配列を作成する。たとえば、ds1 = ds(1:5,:)
と指定すると、新しいデータセット配列ds1
が作成され、ds
の最初の 5 行が格納されます。メタデータ (変数名や観測名など) は新しいデータセット配列に伝達されます。変数名をドット表記で使用して、データセット配列内の個々の変数をインデックス処理する。たとえば、
ds.Height
と指定するとHeight
という変数をインデックスに使用します。観測名を使用して、データセット配列内の個々の観測をインデックス処理する。たとえば、
ds('Obs1',:)
と指定するとObs1
という観測名のデータが得られます。観測番号または変数番号を使用する。たとえば、
ds(:,[1,3,5])
と指定すると、ds
の 1 番目、3 番目、5 番目の変数 (列) のデータが得られます。論理インデックスを使用して、
ds
のうち論理条件を満たす観測値を検索する。たとえば、ds(ds.Gender=='Male',:)
と指定すると、ds
の観測のうち、変数Gender
(ノミナル配列) の値がMale
であるものが返されます。ismissing
を使用して、データセット配列内の欠損データを検索する。
例
一般的なインデックス付けと検索の方法
この例では、categorical 配列でのインデックス付けと検索の方法をいくつか紹介します。
標本データを読み込みます。
load hospital;
size(hospital)
ans = 1×2
100 7
このデータセット配列には 100 件の観測値と 7 個の変数があります。
名前に基づいて変数をインデックス処理します。データセット配列の年齢の最小値を返します。
min(hospital.Age)
ans = 25
変数 Trials
を削除します。
hospital.Trials = []; size(hospital)
ans = 1×2
100 6
名前に基づいて観測値をインデックス処理します。PUE-347
という名前の観測値について、最初の 5 つの変数の測定値を表示します。
hospital('PUE-347',1:5)
ans = LastName Sex Age Weight Smoker PUE-347 {'YOUNG'} Female 25 114 false
番号に基づいて変数をインデックス処理します。hospital
の最初の 4 つの変数が格納される新しいデータセット配列を作成します。
dsNew = hospital(:,1:4); dsNew.Properties.VarNames(:)
ans = 4x1 cell
{'LastName'}
{'Sex' }
{'Age' }
{'Weight' }
番号に基づいて観測値をインデックス処理します。最後の 10 件の観測値を削除します。
hospital(end-9:end,:) = []; size(hospital)
ans = 1×2
90 6
論理条件により観測値を検索します。喫煙する女性の情報だけを格納する新しいデータセット配列を作成します。
dsFS = hospital(hospital.Sex=='Female' & hospital.Smoker==true,:); dsFS(:,{'LastName','Sex','Smoker'})
ans = LastName Sex Smoker LPD-746 {'MILLER' } Female true XBR-291 {'GARCIA' } Female true AAX-056 {'LEE' } Female true DTT-578 {'WALKER' } Female true AFK-336 {'WRIGHT' } Female true RBA-579 {'SANCHEZ' } Female true HAK-381 {'MORRIS' } Female true NSK-403 {'RAMIREZ' } Female true ILS-109 {'WATSON' } Female true JDR-456 {'SANDERS' } Female true HWZ-321 {'PATTERSON'} Female true GGU-691 {'HUGHES' } Female true WUS-105 {'FLORES' } Female true