Main Content

setdiff

クラス: dataset

(非推奨) データセット配列の観測の差集合

dataset データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table データ型を使用します。詳細は、MATLAB table ドキュメンテーションを参照してください。

構文

C = setdiff(A,B)
C = setdiff(A,B,vars)
C = setxor(A,B,vars,setOrder)
[C,iA] = setxor(___)

説明

C = setdiff(A,B) は、dataset 配列 AB について、A に含まれていて B には含まれない観測値のセットから重複を除いたものを返します。データセット配列 C の観測値は並べ替えられています。

C = setdiff(A,B,vars) は、vars で指定された変数のみを考慮した上で、A に含まれていて B には含まれない観測値のセットから重複を除いたものを返します。データセット配列 C の観測値は、これらの変数に基づいて並べ替えられます。C の各観測値の vars で変数値が指定されていないと、A から対応する観測を取得します。AC の観測に対応する観測が複数ある場合、その最初の観測からの値が使用されます。

C = setxor(A,B,vars,setOrder) は、C の観測値を setOrder で指定された順序で返します。

[C,iA] = setxor(___) は、C = A(iA,:) であるようなインデックス ベクトル iA も返します。A に重複した観測があると、setxor はその最初の出現位置のインデックスを返します。前の入力引数のいずれも使用できます。

入力引数

A,B

入力データセット配列。

vars

変数名が含まれている文字ベクトルの cell 配列または string 配列、または変数の列番号が含まれている整数のベクトル。vars は、setdiff で考慮する変数を指定します。

すべての変数の既定値を使用するには、vars[] として指定します。

setOrder

C の観測値の並べ替え順序を指定するフラグ。setOrder で使用できる値は以下のとおりです。

'sorted'C の観測値は並べ替えられた順番になります (既定の設定)。
'stable'C の観測値は A 内の出現順と同じ順序に配置されます。

出力引数

C

A にあって B にはない観測値から重複を除いたデータセット配列。C は並べ替えられた順になるか (既定の設定)、setOrder で指定された順序に並べ替えられます。

iA

C にある A からの観測値を特定するインデックス ベクトル。A に重復観測値があると、ベクトル iA には、その最初の出現値に対するインデックスが格納されます。

すべて展開する

スカラー構造体配列を 1 つ作成し、それを 2 つのデータセット配列に変換します。

S(1,1).Name = 'CLARK';
S(1,1).Gender = 'M';
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = 'BROWN';
S(2,1).Gender = 'F';
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = 'MARTIN';
S(3,1).Gender = 'M';
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

A = struct2dataset(S(1:2));
B = struct2dataset(S(2:3));

AB の交差は 2 番目の観測値 (BROWN という姓のデータ) です。

AB の差集合を返します。

[C,iA] = setdiff(A,B)
C = 
    Name             Gender       SystolicBP    DiastolicBP
    {'CLARK'}        {'M'}        124           93         

iA = 1

A の最初の観測値は B に存在しません。