このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
table の連結
ライブ エディターでキー変数を使用した 2 つの table の連結
説明
[table の連結] タスクでは、連結を実行、つまり table を横方向または縦方向に連結することによって対話的に 2 つの table を結合できます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。
このタスクを使用すると、次を行うことができます。
"キー変数" を指定して、内部連結と外部連結を含む table の連結を実行する。このキー変数は table 変数であり、その一致する値 ("キー値") により出力 table に統合する行が判別されます。
同じ数の行または変数をもつ table をそれぞれ横方向または縦方向に連結する。

タスクを開く
MATLAB エディターで [table の連結] タスクをライブ スクリプトに追加するには、次を行います。
[ライブ エディター] タブで [タスク] 、 [table の連結] を選択します。
スクリプトのコード ブロック内に、
join
、table
、innerjoin
、outerjoin
などの関連キーワードを入力します。コマンドの補完候補からJoin Tables
を選択します。キーワードによっては、1 つ以上の対応するパラメーターがタスクで自動的に更新されます。
例
ライブ エディターの "table の連結" タスクを使用して、2 つの table の内部連結と外部連結を実行します。
最初に、多数の出荷に関する注文 ID、顧客名および注文日がある orders
table を読み込みます。
load orders
orders
orders=3×3 table
OrderID CustomerID OrderDate
_______ __________ ___________
5120 "Sanchez" 23-Apr-2019
1037 "Li" 18-Apr-2019
8937 "Johnson" 16-Apr-2019
次に、items
table を読み込みます。これには、顧客が注文した製品と、その品目の量、価格、出荷ステータスが含まれます。この table の各行には、orders
と同様に注文 ID があります。1 人の顧客が複数の品目を注文できるため、items
の複数の行が orders
の 1 つの注文を参照することがあります。
load items
items
items=5×5 table
OrderID Product Quantity Price Status
_______ ________________ ________ _____ _________
6005 "Dozen Roses" 1 39.99 Shipped
1037 "Petunia Basket" 1 23.99 Delivered
5120 "Tulips" 12 0.99 Pending
1037 "Gardenias" 1 17.99 Shipped
1037 "Gerber Daisies" 6 1.99 Delivered
table の連結タスクを開きます。タスクを開くには、キーワード「join
」をコード ブロックに入力し、メニューに表示された Join Tables
を選択します。
このタスクを使用して、orders
と items
の内部連結を実行します。タスクが開いたら、次を行います。
左と右の table として
orders
とitems
をそれぞれ選択します。両方の table のマージ変数として
OrderID
を選択します。[内部連結] ボタンをクリックします。
このタスクにより生成されるコードを確認するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックしてタスクの表示を展開します。
joinedData=4×7 table
OrderID CustomerID OrderDate Product Quantity Price Status
_______ __________ ___________ ________________ ________ _____ _________
1037 "Li" 18-Apr-2019 "Petunia Basket" 1 23.99 Delivered
1037 "Li" 18-Apr-2019 "Gardenias" 1 17.99 Shipped
1037 "Li" 18-Apr-2019 "Gerber Daisies" 6 1.99 Delivered
5120 "Sanchez" 23-Apr-2019 "Tulips" 12 0.99 Pending
内部連結を実行すると、出力 table には、左右両方の table に出現するキー値のみが含まれます。
値
1037
と5120
のみが、両方の入力 table にあります。このため、出力 table にはそれら 2 つの注文のデータのみが含まれます。値
1037
は、items
では複数回 (品目ごとに 1 回) 出現しますが、orders
では 1 回のみ出現します。このため、1037
に対応するCustomerID
値とOrderDate
値が、出力に必要な回数だけコピーされます。
次に、このタスクを使用して左外部連結を実行します。外部連結は、一方の入力 table にのみ出現するキー値を含むことができます。たとえば、左外部連結には、右の table に対応する一致がない場合でも左の table のすべてのキー値が含まれます。右の table のキー値が左の table と一致しない場合、それらのキー値は含まれません。
[左外部連結] ボタンをクリックします。
[マージ変数の結合] チェック ボックスをオンにします。既定で、外部結合は左右の table のキー変数を出力 table の個別の変数にコピーします。キー変数をマージすると出力のキー変数が 1 つになります。
このタスクにより生成されるコードを確認するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックしてタスクの表示を展開します。
joinedData2=5×7 table
OrderID CustomerID OrderDate Product Quantity Price Status
_______ __________ ___________ ________________ ________ _____ ___________
1037 "Li" 18-Apr-2019 "Petunia Basket" 1 23.99 Delivered
1037 "Li" 18-Apr-2019 "Gardenias" 1 17.99 Shipped
1037 "Li" 18-Apr-2019 "Gerber Daisies" 6 1.99 Delivered
5120 "Sanchez" 23-Apr-2019 "Tulips" 12 0.99 Pending
8937 "Johnson" 16-Apr-2019 <missing> NaN NaN <undefined>
これで、出力 table には注文 8937
のデータが含まれます。ただし、items
table には注文 8937
の品目がないため、行の残りは空の値 (<missing>
、NaN
、<undefined>
など) で埋められます。外部連結では、左右の table にキー値に関連付けられたデータがない場合、テーブル要素を空の値で埋めます。
完全な外部連結では、両方の table のキー値とデータがすべて含まれます。
左外部連結では、左の table のキー値とデータがすべて含まれますが、右の table については一致するキー値とそれに関連付けられたデータのみが含まれます。
右外部連結では、右の table のキー値とデータがすべて含まれますが、左の table については一致するキー値とそれに関連付けられたデータのみが含まれます。
関連する例
パラメーター
ワークスペースにあるすべての空でない table および timetable のリストから名前を指定します。
ワークスペースにあるすべての空でない table および timetable のリストから名前を指定します。
左または右の table にある変数のリストから変数名を指定します。
左の table のドロップダウン リストには、変数の完全なリストがあります。
右の table のドロップダウン リストには、変数のサブセットがあります。右の table のマージ変数のリストは、左の table から選択されたマージ変数により制約されます。
マージ変数 (キー変数) を指定すると、その値により左右の table からマージされる行が決まります。マージ変数の複数のセットを指定するには、[+] ボタンを使用します。
外部連結を実行するときに対応するマージ変数を結合します。既定で、外部連結は左右の table のキー変数を、出力 table の別々の変数にコピーします。左右の table の対応するキー変数を結合して出力の 1 つの変数にするには、このチェック ボックスをオンにします。
バージョン履歴
R2019b で導入ライブ エディターの [table の連結] タスクの左の入力が timetable の場合、行時間をキー値として指定していなくても、出力 timetable を行時間で並べ替えることができます。この場合、行時間で並べ替えるには、[結果を行時間で並べ替え] チェック ボックスをオンにします。
この並べ替えオプションは、以下の 3 つの条件がすべて満たされている場合にのみ使用できます。
左の入力が、行時間で並べ替えられた timetable である。
外部連結または内部連結を指定している。
行時間をキー値として指定していない。
行時間をキー値として指定している場合、出力 timetable は自動的に行時間で並べ替えられます。
ライブ エディターの [table の連結] タスクは、行ラベルまたは変数名に基づいてマージ変数の最初のペアを自動的に選択できなかった場合、スコアリング アルゴリズムに基づいて選択しようとします。スコアリング アルゴリズムについては、Auto-Suggest: Learning-to-Recommend Data Preparation Steps Using Data Science Notebooks で説明されています。[table の連結] タスクは、次のステップを使用してマージ変数の候補ペアを選択し、テストします。
マージ変数の最初のペアとして、行名 (table 内) または行時間 (timetable 内) を選択します。
ステップ 1 が失敗した場合、厳密に一致する名前をもつ変数を最初のペアとして選択します。
ステップ 1 およびステップ 2 が失敗した場合、スコアリング アルゴリズムを使用して変数のペアをスコア付けします。スコアが最も高い変数のペアを、マージ変数の最初のペアとして選択します。
前のステップがすべて失敗した場合、[マージ変数] ドロップダウン リストの最初の項目を、マージ変数の最初のペアとして選択します。
以前のリリースでは、ステップ 3 で、名前の一部が最もよく一致する変数のペアがマージ変数の最初のペアとして選択されました。
入力に 100 万個を超える要素がある場合、このライブ エディター タスクは自動実行されません。以前のリリースでは、入力がどのようなサイズでもタスクは必ず自動実行されていました。入力の要素が多い場合、このタスクで生成されたコードは実行にかなりの時間 (数秒間以上) を要することがあります。
タスクが自動的に実行されない場合、自動実行インジケーターが無効になります。必要に応じてタスクを手動で実行するか、タスクの自動実行の有効化を選択することができます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)