innerjoin
2 つの table または timetable 間の内部連結
構文
説明
はキー変数を使用して、T
= innerjoin(Tleft
,Tright
)Tleft
と Tright
の "内部連結" として table または timetable T
を作成します。両方の入力に同じ名前をもつ変数はすべて、キー変数です。内部連結は、キー変数の値が一致する行を連結します。たとえば、Tleft
に Key1
と Var1
という名前の変数があり、Tright
に変数 Key1
と Var2
がある場合、T=innerjoin(Tleft,Tright)
は Key1
をキー変数として使用します。
一致しているキー変数の値の順序は、左右のテーブルで同じである必要はありません。内部連結は、2 つのテーブルの変数の間で 1 対多と多対 1 の照合を実行できます。つまり、左のテーブルのキー変数に 1 回出現する値について、一致する値が右のテーブルに複数存在できます。同様に、右のテーブルのキー変数に 1 回出現する値について、一致する値が左のテーブルの複数存在できます。
内部連結は table と timetable の特定の組み合わせでのみ実行できます。
Tleft
が table の場合、Tright
は table でなければなりません。innerjoin
はT
を table として返します。Tleft
が timetable の場合、Tright
は table と timetable のいずれかにできます。innerjoin
はいずれかの入力の組み合わせに対して timetable としてT
を返します。
Tleft
と Tright
の行ラベルのベクトルはキー変数にできます。行ラベルは、table の行名または timetable の行時間です。
は、1 つ以上の T
= innerjoin(Tleft
,Tright
,Name,Value
)Name,Value
のペアの引数で指定された追加オプションを使用して内部連結操作を実行します。
たとえば、キー変数として使用する変数を指定できます。
例
1 つの変数を共有するテーブルの内部連結操作
table Tleft
を作成します。
Tleft = table([5;12;23;2;6],... {'cereal';'pizza';'salmon';'cookies';'pizza'},... 'VariableNames',{'Age','FavoriteFood'})
Tleft=5×2 table
Age FavoriteFood
___ ____________
5 {'cereal' }
12 {'pizza' }
23 {'salmon' }
2 {'cookies'}
6 {'pizza' }
Tleft
と 1 つの変数を共有する table Tright
を作成します。
Tright = table({'cereal';'cookies';'pizza';'salmon';'cake'},... [110;160;140;367;243],... {'A-';'D';'B';'B';'C-'},... 'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
Tright=5×3 table
FavoriteFood Calories NutritionGrade
____________ ________ ______________
{'cereal' } 110 {'A-'}
{'cookies'} 160 {'D' }
{'pizza' } 140 {'B' }
{'salmon' } 367 {'B' }
{'cake' } 243 {'C-'}
関数 innerjoin
を使用して、テーブル Tleft
および Tright
のデータを含む新規テーブル T
を作成します。
T = innerjoin(Tleft,Tright)
T=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' }
table T
はキー変数 FavoriteFood
で並べ替えられます。
テーブルの内部連結操作と値へのインデックス
table Tleft
を作成します。
Tleft = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',... 'VariableNames',{'Key1' 'Var1'})
Tleft=5×2 table
Key1 Var1
_____ ____
{'a'} 1
{'b'} 2
{'c'} 3
{'e'} 11
{'h'} 17
変数 Key1
に table Tleft
と共通する値をもつ table Tright
を作成します。ただし、table Tright
には、Tleft
には存在しない Key1
の値を含む行もあります。
Tright = table({'a' 'b' 'd' 'e'}',[4 5 6 7]',... 'VariableNames',{'Key1' 'Var2'})
Tright=4×2 table
Key1 Var2
_____ ____
{'a'} 4
{'b'} 5
{'d'} 6
{'e'} 7
関数 innerjoin
を使用して、テーブル Tleft
および Tright
のデータを含む新規テーブル T
を作成します。変数 Key1
の値が一致する行のみが保持されます。
また、インデックス ベクトル ileft
および iright
が返されます。これらのベクトルは、T
の行と Tleft
および Tright
の行の間の対応をそれぞれ示します。
[T,ileft,iright] = innerjoin(Tleft,Tright)
T=3×3 table
Key1 Var1 Var2
_____ ____ ____
{'a'} 1 4
{'b'} 2 5
{'e'} 11 7
ileft = 3×1
1
2
4
iright = 3×1
1
2
4
table T
は、キー変数 Key1
の値で並べ替えられ、Tleft(ileft,:)
と Tright(iright,'Var2')
の水平連結を格納します。
左キーと右キーを使用したテーブルの内部連結操作
table Tleft
を作成します。
Tleft = table([10;4;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
Tleft=5×3 table
Var1 Var2 Var3
____ ____ ____
10 5 10
4 4 3
2 9 8
3 6 8
7 1 4
2 番目の変数に table Tleft
の最初の変数と共通する値をもつ table Tright
を作成します。
Tright = table([6;1;1;6;8],[2;3;4;5;6])
Tright=5×2 table
Var1 Var2
____ ____
6 2
1 3
1 4
6 5
8 6
関数 innerjoin
を使用して、テーブル Tleft
および Tright
のデータを含む新規テーブル T
を作成します。Tleft
の最初の変数と Tright
の 2 番目の変数をキー変数として使用します。
[T,ileft,iright] = innerjoin(Tleft,Tright,'LeftKeys',1,'RightKeys',2)
T=3×4 table
Var1_Tleft Var2 Var3 Var1_Tright
__________ ____ ____ ___________
2 9 8 6
3 6 8 1
4 4 3 1
ileft = 3×1
3
4
2
iright = 3×1
1
2
3
table T
では、キー変数に関して Tleft
と Tright
の間で一致する行のみが保持されます。
table T
には、Tleft(ileft,:)
と Tright(iright,'Var1')
の水平連結が格納されます。
timetable の内部連結操作
2 つの timetable、Tleft
と Tright
を作成します。これらには共通する行時間がいくつかありますが、各 timetable には他方の timetable にはない行時間も含まれています。
Tleft = timetable(seconds([1;2;4;6]),[1 2 3 11]')
Tleft=4×1 timetable
Time Var1
_____ ____
1 sec 1
2 sec 2
4 sec 3
6 sec 11
Tright = timetable(seconds([2;4;6;7]),[4 5 6 7]')
Tright=4×1 timetable
Time Var1
_____ ____
2 sec 4
4 sec 5
6 sec 6
7 sec 7
Tleft
と Tright
を内部連結で結合します。T
は共通の行時間の行と一致します。T
はこれ以外にいずれの timetable からの行も含んでいません。
T = innerjoin(Tleft,Tright)
T=3×2 timetable
Time Var1_Tleft Var1_Tright
_____ __________ ___________
2 sec 2 4
4 sec 3 5
6 sec 11 6
入力引数
Tleft
— 左のテーブル
table | timetable
左のテーブル。table または timetable として指定します。
Tright
— 右のテーブル
table | timetable
右のテーブル。table または timetable として指定します。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'Keys',2
は、Tleft
の 2 番目の変数と Tright
の 2 番目の変数をキー変数として使用します。
Keys
— キーとして使用する変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
キーとして使用する変数。'Keys'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
名前と値のペアの引数 'Keys'
を名前と値のペアの引数 'LeftKeys'
および 'RightKeys'
と共に使用することはできません。
行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。詳細については、ヒントの節を参照してください。
例: 'Keys',[1 3]
は、Tleft
および Tright
の最初の変数と 3 番目の変数をキー変数として使用します。
例: 'Keys',{'X','Y'}
は、Tleft
と Tright
の X
と Y
という名前の変数をキー変数として使用します。
例: 'Keys','Row'
は、Tleft
と Tright
の両方が行名をもつ table の場合、Tleft
と Tright
の行名のベクトルをキー変数として使用します。
LeftKeys
— Tleft
でキーとして使用する変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
Tleft
でキーとして使用する変数。'LeftKeys'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
名前と値のペアの引数 'LeftKeys'
は名前と値のペアの引数 'RightKeys'
と組み合わせて使用しなければなりません。'LeftKeys'
および 'RightKeys'
では、同じ数のキー変数を指定しなければなりません。innerjoin
は、キーの値をその順序に基づいて組み合わせます。
行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。詳細については、ヒントの節を参照してください。
例: 'LeftKeys',1
は、Tleft
の最初の変数のみをキー変数として使用します。
RightKeys
— Tright
でキーとして使用する変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
Tright
でキーとして使用する変数。'RightKeys'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
名前と値のペアの引数 'RightKeys'
は名前と値のペアの引数 'LeftKeys'
と組み合わせて使用しなければなりません。'LeftKeys'
および 'RightKeys'
では、同じ数のキー変数を指定しなければなりません。innerjoin
は、キーの値をその順序に基づいて組み合わせます。
行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。詳細については、ヒントの節を参照してください。
例: 'RightKeys',3
は、Tright
の 3 番目の変数のみをキー変数として使用します。
LeftVariables
— T
に含める Tleft
の変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
T
に含める Tleft
の変数。'LeftVariables'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
'LeftVariables'
を使用して、出力 T
にキー変数および非キー変数を含めたり、除外したりできます。
既定で、innerjoin
には Tleft
のすべての変数が含まれます。
RightVariables
— T
に含める Tright
の変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
T
に含める Tright
の変数。'RightVariables'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
'RightVariables'
を使用して、出力 T
にキー変数および非キー変数を含めたり、除外したりできます。
既定で、innerjoin
にはキー変数以外の Tright
のすべての変数が含まれます。
出力引数
T
— Tleft
および Tright
からの内部連結
table | timetable
Tleft
および Tright
からの内部連結。table または timetable として返されます。出力 table または出力 timetable である T
には、キー変数で同じ値の組み合わせを共有する Tleft
および Tright
の行のペアごとに 1 行が格納されます。Tleft
と Tright
に同じ名前の変数がある場合、innerjoin
は T
の対応する変数名に一意の接尾辞を追加します。
一般に、Tleft
が m
行、Tright
が n
行で、キー変数の値の組み合わせがすべて同じであれば、T
にはその組み合わせについて m*n
行が含まれます。
T
は、キー変数の値で並べ替えられ、Tleft(ileft,LeftVars)
と Tright(iright,RightVars)
の水平連結を格納します。既定で、LeftVars
は Tleft
のすべての変数で構成され、RightVars
は Tright
のすべての非キー変数で構成されます。そうでない場合、LefttVars
は名前と値のペアの引数 'LeftVariables'
で指定された変数で構成され、RightVars
は名前と値のペアの引数 'RightVariables'
で指定された変数で構成されます。
T
には、説明、変数の単位、変数名、行名などの追加のメタデータを格納できます。詳細については、table
または timetable
のプロパティの節を参照してください。
ileft
— Tleft
のインデックス
列ベクトル
Tleft
のインデックス。列ベクトルとして返されます。ileft
の各要素は、出力 table または出力 timetable である T
の行に対応する Tleft
の行を示します。
iright
— Tright
のインデックス
列ベクトル
Tright
のインデックス。列ベクトルとして返されます。iright
の各要素は、出力 table または出力 timetable である T
の行に対応する Tright
の行を示します。
詳細
キー変数
入力テーブル Tleft
および Tright
間のデータの照合と結合に使用される変数。
ヒント
入力 table または timetable からの行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。行ラベルは、table の行名または timetable の行時間です。このベクトルをキーとして使用するには、(table の行名に対して)
'Row'
として、行時間の timetable ベクトルの名前として、または
の値として指定します。ここでT
.Properties.DimensionNames{1}
は table または timetable です。T
一般的に、
innerjoin
は、入力テーブルTleft
から出力テーブルT
に行ラベルをコピーします。Tleft
に行ラベルがない場合、T
に行ラベルはありません。Tleft
に行ラベルがある場合、innerjoin
はTleft
から行ラベルをコピーしてT
に行ラベルを作成します。ただし、
Tleft
とTright
の両方が table で、いずれの入力 table の行名もキーとして指定しない場合、innerjoin
はT
に行名を作成しません。
Tleft
の行ラベルを左キー、Tright
の変数を右キーとして使用して、内部連結を実行することはできません。内部連結を実行するには、Tleft
の行ラベルを table 変数に変換し、この新しい table 変数をキーとして使用します。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
以下の名前と値の引数の値は、パターン式をサポートしません。
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
通常、入力 table に同じ名前の非キー変数を含めることはできません。ただし、名前と値の引数
'LeftVariables'
および'RightVariables'
を指定すると、入力 table のサブセットを連結できます。これらの引数を'LeftVariables'
と'RightVariables'
の両方に含まれる変数名がないようにして指定します。以下の名前と値の引数の値は定数でなければなりません。
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
以下の名前と値の引数の値は、パターン式をサポートしません。
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
入れ子の table および timetable はサポートされていません。
バージョン履歴
R2013b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)