Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

table の連結

ライブ エディターでキー変数を使用した 2 つの table の連結

R2019b 以降

説明

[table の連結] タスクでは、連結を実行、つまり table を横方向または縦方向に連結することによって対話的に 2 つの table を結合できます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。

このタスクを使用すると、次を行うことができます。

  • "キー変数" を指定して、内部連結と外部連結を含む table の連結を実行する。このキー変数は table 変数であり、その一致する値 ("キー値") により出力 table に統合する行が判別されます。

  • 同じ数の行または変数をもつ table をそれぞれ横方向または縦方向に連結する。

Join Tables task in the Live Editor

タスクを開く

MATLAB エディターで [table の連結] タスクをライブ スクリプトに追加するには、次を行います。

  • [ライブ エディター] タブで [タスク]、[table の連結] を選択します。

  • スクリプトのコード ブロック内に、jointables などの関連キーワードを入力します。コマンドの補完候補から Join Tables を選択します。

すべて展開する

ライブ エディターの "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 を選択します。

このタスクを使用して、ordersitems の内部連結を実行します。タスクが開いたら、次を行います。

  1. 左と右の table として ordersitems をそれぞれ選択します。

  2. 両方の table のマージ変数として OrderID を選択します。

  3. [内部連結] ボタンをクリックします。

  4. このタスクにより生成されるコードを確認するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックしてタスクの表示を展開します。

Live Task
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 に出現するキー値のみが含まれます。

  • 10375120 のみが、両方の入力 table にあります。このため、出力 table にはそれら 2 つの注文のデータのみが含まれます。

  • 1037 は、items では複数回 (品目ごとに 1 回) 出現しますが、orders では 1 回のみ出現します。このため、1037 に対応する CustomerID 値と OrderDate 値が、出力に必要な回数だけコピーされます。

次に、このタスクを使用して左外部連結を実行します。外部連結は、一方の入力 table にのみ出現するキー値を含むことができます。たとえば、左外部連結には、右の table に対応する一致がない場合でも左の table のすべてのキー値が含まれます。右の table のキー値が左の table と一致しない場合、それらのキー値は含まれません。

  1. [左外部連結] ボタンをクリックします。

  2. [マージ変数の結合] チェック ボックスをオンにします。既定で、外部結合は左右の table のキー変数を出力 table の個別の変数にコピーします。キー変数をマージすると出力のキー変数が 1 つになります。

  3. このタスクにより生成されるコードを確認するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックしてタスクの表示を展開します。

Live Task
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 で導入

すべて展開する