ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

outerjoin

2 つのテーブル間の外部連結

構文

  • C = outerjoin(A,B)
  • C = outerjoin(A,B,Name,Value)
  • [C,ia,ib] = outerjoin(___)

説明

C = outerjoin(A,B) は、キー変数と同じ名前のすべての変数を使用して行を一致させることにより、テーブル AB の間の外部連結としてテーブル C を作成します。

外部連結には、キー変数を基準として、AB の間で一致する行と、A または B のどちらかのみに存在する行が含まれています。C には、キー変数を含む AB 両方からのすべての変数が含まれます。

C = outerjoin(A,B,Name,Value) は、1 つまたは複数の Name,Value のペア引数で指定された追加オプションを使用して外部連結操作を実行します。

[C,ia,ib] = outerjoin(___) は、インデックス ベクトル ia および ib も返します。これらのベクトルは、C の行と A および B の行の間の対応をそれぞれ示します。この構文では、前の構文の入力引数のいずれかを使用できます。

すべて展開する

1 つの変数を共有するテーブルの外部連結操作

テーブル A を作成します。

A = table([5;12;23;2;15;6],...
    {'cheerios';'pizza';'salmon';'oreos';'lobster';'pizza'},...
    'VariableNames',{'Age','FavoriteFood'},...
    'RowNames',{'Amy','Bobby','Holly','Harry','Marty','Sally'})
A = 

             Age    FavoriteFood
             ___    ____________

    Amy       5     'cheerios'  
    Bobby    12     'pizza'     
    Holly    23     'salmon'    
    Harry     2     'oreos'     
    Marty    15     'lobster'   
    Sally     6     'pizza'     

FavoriteFood という 1 つの変数を A と共有するテーブル B を作成します。

B = table({'cheerios';'oreos';'pizza';'salmon';'cake'},...
    [110;160;140;367;243],...
    {'A-';'D';'B';'B';'C-'},...
    'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
B = 

    FavoriteFood    Calories    NutritionGrade
    ____________    ________    ______________

    'cheerios'      110         'A-'          
    'oreos'         160         'D'           
    'pizza'         140         'B'           
    'salmon'        367         'B'           
    'cake'          243         'C-'          

関数 outerjoin を使用して、テーブル A および B のデータを含む新規テーブル C を作成します。

C = outerjoin(A,B)
C = 

    Age    FavoriteFood_A    FavoriteFood_B    Calories    NutritionGrade
    ___    ______________    ______________    ________    ______________

    NaN    ''                'cake'            243         'C-'          
      5    'cheerios'        'cheerios'        110         'A-'          
     15    'lobster'         ''                NaN         ''            
      2    'oreos'           'oreos'           160         'D'           
     12    'pizza'           'pizza'           140         'B'           
      6    'pizza'           'pizza'           140         'B'           
     23    'salmon'          'salmon'          367         'B'           

テーブル C には、A のキー変数 FavoriteFood_AB のキー変数 FavoriteFood_B に対応する別々の変数が含まれています。

キー変数ペアの 1 つの変数へのマージ

テーブル A を作成します。

A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',...
    'VariableNames',{'Key1' 'Var1'})
A = 

    Key1    Var1
    ____    ____

    'a'      1  
    'b'      2  
    'c'      3  
    'e'     11  
    'h'     17  

変数 Key1 にテーブル A と共通する値をもつテーブル B を作成します。ただし、テーブル B には、A には存在しない Key1 の値を含む行もあります。

B = table({'a','b','d','e'}',[4;5;6;7],...
    'VariableNames',{'Key1' 'Var2'})
B = 

    Key1    Var2
    ____    ____

    'a'     4   
    'b'     5   
    'd'     6   
    'e'     7   

関数 outerjoin を使用して、テーブル A および B のデータを含む新規テーブル C を作成します。出力テーブル C の 1 つの変数にキー値をマージします。

C = outerjoin(A,B,'MergeKeys',true)
C = 

    Key1    Var1    Var2
    ____    ____    ____

    'a'       1       4 
    'b'       2       5 
    'c'       3     NaN 
    'd'     NaN       6 
    'e'      11       7 
    'h'      17     NaN 

A から取得したテーブル C の変数では、B と一致しない行に null 値が含まれます。同様に、B から取得した C の変数では、A と一致しなかった行に null 値が含まれます。

テーブルの外部連結操作と値へのインデックス

テーブル A を作成します。

A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',...
    'VariableNames',{'Key1' 'Var1'})
A = 

    Key1    Var1
    ____    ____

    'a'      1  
    'b'      2  
    'c'      3  
    'e'     11  
    'h'     17  

変数 Key1 にテーブル A と共通する値をもつテーブル B を作成します。ただし、テーブル B には、A には存在しない Key1 の値を含む行もあります。

B = table({'a','b','d','e'}',[4;5;6;7],...
    'VariableNames',{'Key1' 'Var2'})
B = 

    Key1    Var2
    ____    ____

    'a'     4   
    'b'     5   
    'd'     6   
    'e'     7   

関数 outerjoin を使用して、テーブル A および B のデータを含む新規テーブル C を作成します。キー変数 Key1 に共通の値がある行を一致させますが、キー値が一致しない行も保持します。

また、インデックス ベクトル ia および ib が返されます。これらのベクトルは、C の行と A および B の行の間の対応をそれぞれ示します。

[C,ia,ib] = outerjoin(A,B)
C = 

    Key1_A    Var1    Key1_B    Var2
    ______    ____    ______    ____

    'a'         1     'a'         4 
    'b'         2     'b'         5 
    'c'         3     ''        NaN 
    ''        NaN     'd'         6 
    'e'        11     'e'         7 
    'h'        17     ''        NaN 


ia =

     1
     2
     3
     0
     4
     5


ib =

     1
     2
     0
     3
     4
     0

インデックス ベクトル ia および ib には、それぞれテーブル A または B の行に対応しないテーブル C の行を示すゼロが含まれます。

テーブルの左外部連結操作と値へのインデックス

テーブル A を作成します。

A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',...
    'VariableNames',{'Key1' 'Var1'})
A = 

    Key1    Var1
    ____    ____

    'a'      1  
    'b'      2  
    'c'      3  
    'e'     11  
    'h'     17  

変数 Key1 にテーブル A と共通する値をもつテーブル B を作成します。ただし、テーブル B には、A には存在しない Key1 の値を含む行もあります。

B = table({'a','b','d','e'}',[4;5;6;7],...
    'VariableNames',{'Key1' 'Var2'})
B = 

    Key1    Var2
    ____    ____

    'a'     4   
    'b'     5   
    'd'     6   
    'e'     7   

関数 outerjoin を使用して、テーブル A および B のデータを含む新規テーブル C を作成します。キー値が A の行と一致しない B の行を無視します。

また、インデックス ベクトル ia および ib が返されます。これらのベクトルは、C の行と A および B の行の間の対応をそれぞれ示します。

[C,ia,ib] = outerjoin(A,B,'Type','left')
C = 

    Key1_A    Var1    Key1_B    Var2
    ______    ____    ______    ____

    'a'        1      'a'         4 
    'b'        2      'b'         5 
    'c'        3      ''        NaN 
    'e'       11      'e'         7 
    'h'       17      ''        NaN 


ia =

     1
     2
     3
     4
     5


ib =

     1
     2
     0
     4
     0

ia のすべての値は非ゼロであり、C のすべての行に A に対応する行があることを示しています。

入力引数

すべて展開する

A,B - 入力テーブルテーブル

テーブルとして指定される入力テーブル。

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: 'Keys',2 は、A の 2 番目の変数と B の 2 番目の変数をキー変数として使用します。

'Keys' - キーとして使用する変数正の整数 | 正の整数のベクトル | 変数名 | 変数名のセル配列 | 論理ベクトル

キーとして使用する変数。'Keys' と、正の整数、正の整数のベクトル、変数名、変数名のセル配列または論理ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

名前と値のペアの引数 'Keys' を名前と値のペアの引数 'LeftKeys' および 'RightKeys' と共に使用することはできません。

例: 'Keys',[1 3] は、A および B の最初の変数と 3 番目の変数をキー変数として使用します。

'LeftKeys' - A でキーとして使用する変数正の整数 | 正の整数のベクトル | 変数名 | 変数名のセル配列 | 論理ベクトル

A でキーとして使用する変数。'LeftKeys' と、正の整数、正の整数のベクトル、変数名、変数名のセル配列または論理ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

名前と値のペアの引数 'LeftKeys' は名前と値のペアの引数 'RightKeys' と組み合わせて使用しなければなりません。'LeftKeys' および 'RightKeys' では、同じ数のキー変数を指定しなければなりません。outerjoin は、キーの値をその順序に基づいて組み合わせます。

例: 'LeftKeys',1 は、A の最初の変数のみをキー変数として使用します。

'RightKeys' - B でキーとして使用する変数正の整数 | 正の整数のベクトル | 変数名 | 変数名のセル配列 | 論理ベクトル

B でキーとして使用する変数。'RightKeys' と、正の整数、正の整数のベクトル、変数名、変数名のセル配列または論理ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

名前と値のペアの引数 'RightKeys' は名前と値のペアの引数 'LeftKeys' と組み合わせて使用しなければなりません。'LeftKeys' および 'RightKeys' では、同じ数のキー変数を指定しなければなりません。outerjoin は、キーの値をその順序に基づいて組み合わせます。

例: 'RightKeys',3 は、B の 3 番目の変数のみをキー変数として使用します。

'MergeKeys' - キーのマージ フラグfalse (既定の設定) | true | 0 | 1

キーのマージ フラグ。'MergeKeys'falsetrue0 または 1 で構成されるコンマ区切りのペアとして指定します。

false

outerjoin は、テーブル A および B からの各キー変数ペアに対して別々の 2 つの変数を出力テーブル C に含めます。

これは既定の動作です。

true

outerjoin は、テーブル A および B からの各キー変数ペアに対して 1 つの変数を出力テーブル C に含めます。

outerjoinA および B からキー値をマージすることで 1 つの変数を作成します。A に対応する行が存在する場合は A から、そうでない場合は B から値を取ります。

'MergeKeys',true を指定する場合、outerjoin はすべてのキー変数を出力テーブル C に含め、名前と値のペアの引数 'LeftVariables' および 'RightVariables' によって指定されたキー変数を含めるか除外するかの指定がオーバーライドされます。

'LeftVariables' - C に含める A の変数正の整数 | 正の整数のベクトル | 変数名 | 1 つまたは複数の変数名を含むセル配列 | 論理ベクトル

C に含める A の変数。'LeftVariables' と、正の整数、正の整数のベクトル、変数名、変数名のセル配列または論理ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

'LeftVariables' を使用すると、キー変数と出力 C の非キー変数を含めたり除外したりできます。

既定の設定では、outerjoin には A のすべての変数が含まれます。

'RightVariables' - C に含める B の変数正の整数 | 正の整数のベクトル | 変数名 | 1 つまたは複数の変数名を含むセル配列 | 論理ベクトル

C に含める B の変数。'RightVariables' と、正の整数、正の整数のベクトル、変数名、変数名のセル配列または論理ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

'RightVariables' を使用すると、キー変数と出力 C の非キー変数を含めたり除外したりできます。

既定の設定では、outerjoin には B のすべての変数が含まれます。

'Type' - 外部連結操作のタイプ'full' (既定の設定) | 'left' | 'right'

外部連結操作のタイプ。'Type''full''left' または 'right' で構成されるコンマ区切りのペアとして指定します。

  • 左外部連結の場合、C には B のどの値とも一致しない A のキー値に対応する行が含まれますが、逆は含まれません。

  • 右外部連結の場合、C には A のどの値とも一致しない B のキー値に対応する行が含まれますが、逆は含まれません。

既定では、outerjoin は完全な外部連結を行い、AB の両方からの一致しない行を含みます。

出力引数

すべて展開する

C - A および B からの外部連結テーブル

A および B からの外部連結。テーブルとして返されます。出力テーブル C には、キー値の同じ組み合わせを共有するテーブル A および B の行のペアごとに 1 つの行が格納されます。AB に同じ名前の変数がある場合、outerjoinC の対応する変数名に一意の接尾辞を追加します。A から取得した C の変数では、B と一致しなかった行に null 値が含まれます。同様に、B から取得した C の変数では、A と一致しなかった行に null 値が含まれます。

一般に、キー変数の値の組み合わせがすべて同じ行がテーブル Am 行、テーブル Bn 行存在する場合、テーブル C にはその組み合わせの行が m*n 行格納されます。C にはまた、各入力テーブルのキー値の組み合わせのうち、もう一方の入力テーブルの行と一致しないものに対応する行も格納されます。

C は、キー変数の値で並べ替えられた A(ia,LeftVars)B(ib,RightVars) の水平連結を格納します。既定の設定では、LeftVarsA のすべての変数で構成され、RightVarsB のすべての変数で構成されます。そうでない場合、LefttVars は名前と値のペアの引数 'LeftVariables' で指定された変数で構成され、RightVars は名前と値のペアの引数 'RightVariables' で指定された変数で構成されます。

テーブルには、説明、変数単位、変数名、行名などの追加のメタデータを格納できます。詳細は、「Table Properties」を参照してください。

ia - A へのインデックス列ベクトル

A へのインデックス。列ベクトルとして返されます。ia の各要素は、出力テーブル C の行に対応するテーブル A の行を示します。ベクトル ia には、A の行に対応しない C の行を示すゼロが含まれます。

ib - B へのインデックス列ベクトル

B へのインデックス。列ベクトルとして返されます。ib の各要素は、出力テーブル C の行に対応するテーブル B の行を示します。ベクトル ib には、B の行に対応しない C の行を示すためにゼロが含まれます。

詳細

すべて展開する

キー変数

入力テーブル A および B 間のデータの照合と組み合わせに使用される変数。

参考

|

この情報は役に立ちましたか?