ドキュメンテーション

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

innerjoin

2 つの table または timetable 間の内部連結

構文

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

説明

C = innerjoin(A,B) は、キー変数と同じ名前のすべての変数を使用して行を一致させることにより、AB の間の内部連結として table または timetable C を作成します。内部連結は table と timetable の特定の組み合わせでのみ実行できます。

  • A が table の場合、B は table でなければなりません。innerjoinC を table として返します。

  • A が timetable の場合、B は table と timetable のいずれかにできます。innerjoin はいずれかの入力の組み合わせに対して timetable として C を返します。

内部連結では、キー変数に関して AB の間で一致する行のみが保持されます。C には、AB の非キー変数がすべて格納されます。

AB の行ラベルはキー変数にできます。行ラベルは、table の行名または timetable の行時間です。

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

たとえば、キー変数として使用する変数を指定できます。

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

すべて折りたたむ

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

A = table([5;12;23;2;6],...
    {'cereal';'pizza';'salmon';'cookies';'pizza'},...
    'VariableNames',{'Age','FavoriteFood'})
A=5×2 table
    Age    FavoriteFood
    ___    ____________

     5      'cereal'   
    12      'pizza'    
    23      'salmon'   
     2      'cookies'  
     6      'pizza'    

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

B = table({'cereal';'cookies';'pizza';'salmon';'cake'},...
    [110;160;140;367;243],...
    {'A-';'D';'B';'B';'C-'},...
    'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
B=5×3 table
    FavoriteFood    Calories    NutritionGrade
    ____________    ________    ______________

     'cereal'         110            'A-'     
     'cookies'        160            'D'      
     'pizza'          140            'B'      
     'salmon'         367            'B'      
     'cake'           243            'C-'     

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

C = innerjoin(A,B)
C=5×4 table
    Age    FavoriteFood    Calories    NutritionGrade
    ___    ____________    ________    ______________

     5      'cereal'         110            'A-'     
     2      'cookies'        160            'D'      
    12      'pizza'          140            'B'      
     6      'pizza'          140            'B'      
    23      'salmon'         367            'B'      

テーブル C はキー変数 FavoriteFood で並べ替えられます。

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

A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',...
    'VariableNames',{'Key1' 'Var1'})
A=5×2 table
    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=4×2 table
    Key1    Var2
    ____    ____

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

関数 innerjoin を使用して、テーブル A および B のデータを含む新規テーブル C を作成します。変数 Key1 の値が一致する行のみが保持されます。

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

[C,ia,ib] = innerjoin(A,B)
C=3×3 table
    Key1    Var1    Var2
    ____    ____    ____

    'a'       1      4  
    'b'       2      5  
    'e'      11      7  

ia = 3×1

     1
     2
     4

ib = 3×1

     1
     2
     4

C は、キー変数 Key1 の値で並べ替えられ、A(ia,:)B(ib,'Var2') の水平連結を格納します。

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

A = table([10;4;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
A=5×3 table
    Var1    Var2    Var3
    ____    ____    ____

     10      5       10 
      4      4        3 
      2      9        8 
      3      6        8 
      7      1        4 

2 番目の変数にテーブル A の最初の変数と共通する値をもつテーブル B を作成します。

B = table([6;1;1;6;8],[2;3;4;5;6])
B=5×2 table
    Var1    Var2
    ____    ____

     6       2  
     1       3  
     1       4  
     6       5  
     8       6  

関数 innerjoin を使用して、テーブル A および B のデータを含む新規テーブル C を作成します。A の最初の変数と B の 2 番目の変数をキー変数として使用します。

[C,ia,ib] = innerjoin(A,B,'LeftKeys',1,'RightKeys',2)
C=3×4 table
    Var1_A    Var2    Var3    Var1_B
    ______    ____    ____    ______

      2        9       8        6   
      3        6       8        1   
      4        4       3        1   

ia = 3×1

     3
     4
     2

ib = 3×1

     1
     2
     3

テーブル C では、キー変数に関して AB の間で一致する行のみが保持されます。

テーブル C には、A(ia,:)B(ib,'Var1') の水平連結が格納されます。

2 つの timetable、AB を作成します。これらには共通する行時間がいくつかありますが、各 timetable には他方の timetable にはない行時間も含まれています。

A = timetable(seconds([1;2;4;6]),[1 2 3 11]')
A=4×1 timetable
    Time     Var1
    _____    ____

    1 sec      1 
    2 sec      2 
    4 sec      3 
    6 sec     11 

B = timetable(seconds([2;4;6;7]),[4 5 6 7]')
B=4×1 timetable
    Time     Var1
    _____    ____

    2 sec     4  
    4 sec     5  
    6 sec     6  
    7 sec     7  

AB を内部連結で結合します。C は共通の行時間の行と一致します。C はこれ以外にどちらの timetable からの行も含んでいません。

C = innerjoin(A,B)
C=3×2 timetable
    Time     Var1_A    Var1_B
    _____    ______    ______

    2 sec       2        4   
    4 sec       3        5   
    6 sec      11        6   

入力引数

すべて折りたたむ

入力テーブル。table または timetable として指定します。

名前と値のペアの引数

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

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

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

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

行ラベルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。詳細については、ヒントの節を参照してください。

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

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

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

行ラベルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。詳細については、ヒントの節を参照してください。

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

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

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

行ラベルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。詳細については、ヒントの節を参照してください。

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

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

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

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

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

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

既定の設定では、innerjoin には、キー変数以外の B のすべての変数が含まれます。

出力引数

すべて折りたたむ

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

一般に、Am 行、Bn 行で、キー変数の値の組み合わせがすべて同じであれば、C にはその組み合わせ m*n 行が含まれます。

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

C には、説明、変数単位、変数名、行名などの追加のメタデータを格納できます。詳細については、table または timetable のプロパティの節を参照してください。

A のインデックス。列ベクトルとして返されます。ia の各要素は、出力 table または出力 timetable である C の行に対応する A の行を示します。

B のインデックス。列ベクトルとして返されます。ib の各要素は、出力 table または出力 timetable である C の行に対応する B の行を示します。

詳細

すべて折りたたむ

キー変数

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

ヒント

入力 table A および B の行ラベルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。行ラベルは、table の行名または timetable の行時間です。一般的に、innerjoin は行ラベルを入力 table A から出力 table C にコピーします。

  • A に行ラベルがない場合、C に行ラベルはありません。

  • A に行ラベルがある場合、innerjoinA から行ラベルをコピーして C に行ラベルを作成します。

    • ただし、AB の両方が table で、いずれの入力 table の行名もキーとして指定しない場合、innerjoinC に行名を作成しません。

A の行ラベルを左キー、B の変数を右キーとして使用して、内部連結を実行することはできません。内部連結を実行するには、A の行ラベルを table 変数に変換し、この新しい table 変数をキーとして使用します。

拡張機能

参考

|

R2013b で導入