Main Content

mergevars

table 変数または timetable 変数を複数列変数にまとめる

説明

T2 = mergevars(T1,vars) は、vars で指定された複数の table 変数をまとめて T2 内に複数列の変数を 1 つ作成します。T1 のその他すべての変数は変更されません。変数は名前や位置で指定するか、論理インデックスを使用して指定することができます。

たとえば、T1var3var5 という名前の変数がある場合、T2 = mergevars(T1,["var3","var5"]) を使用して、2 列をもつ 1 つの変数にそれらをまとめることができます。T2 でまとめた変数の名前は var3 になります。

既定では、T2 内にあるマージ後の変数の名前は VarN の形式になります。ここで N はマージ後の変数の位置です。たとえば、マージ後の変数が T2 内の 3 番目の変数である場合、その名前は Var3 です。

複数列変数を分割するには、関数 splitvars を使用します。

T2 = mergevars(T1,vars,'NewVariableName',newName) は、複数列変数の名前を指定します。

T2 = mergevars(___,'MergeAsTable',true) は、指定した変数を配列ではなく table にマージします。その新しい table 自体が、出力 table T2 の変数です。この構文を使用して、配列に連結できない変数をまとめます。この構文では、前述の構文の任意の入力引数を使用できます。

すべて折りたたむ

ワークスペース変数から table を作成します。

A = [1:3]';
B = [5 11 12]';
C = [3.14 2.72 1.37]';
D = {'a';'b';'c'};
T1 = table(A,B,C,D)
T1=3×4 table
    A    B      C        D  
    _    __    ____    _____

    1     5    3.14    {'a'}
    2    11    2.72    {'b'}
    3    12    1.37    {'c'}

2 番目と 3 番目の変数をマージします。新しい変数には 2 列があります。

T2 = mergevars(T1,[2 3])
T2=3×3 table
    A       Var2         D  
    _    __________    _____

    1     5    3.14    {'a'}
    2    11    2.72    {'b'}
    3    12    1.37    {'c'}

patients.mat ファイルのデータ配列を使用して table を作成します。table の最初の 3 行を表示します。

load patients
T1 = table(LastName,Gender,Age,Height,Weight,Systolic,Diastolic);
head(T1,3)
      LastName        Gender      Age    Height    Weight    Systolic    Diastolic
    ____________    __________    ___    ______    ______    ________    _________

    {'Smith'   }    {'Male'  }    38       71       176        124          93    
    {'Johnson' }    {'Male'  }    43       69       163        109          77    
    {'Williams'}    {'Female'}    38       64       131        125          83    

変数 Systolic および Diastolic を、2 列をもつ 1 つの変数にマージします。それに BloodPressure という名前を付けます。

T2 = mergevars(T1,{'Systolic','Diastolic'},'NewVariableName','BloodPressure');
head(T2,3)
      LastName        Gender      Age    Height    Weight    BloodPressure
    ____________    __________    ___    ______    ______    _____________

    {'Smith'   }    {'Male'  }    38       71       176       124     93  
    {'Johnson' }    {'Male'  }    43       69       163       109     77  
    {'Williams'}    {'Female'}    38       64       131       125     83  

スプレッドシートから table に読み取ります。最初の 3 行を表示します。

T1 = readtable('outages.csv');
head(T1,3)
       Region           OutageTime        Loss     Customers     RestorationTime          Cause      
    _____________    ________________    ______    __________    ________________    ________________

    {'SouthWest'}    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'}
    {'SouthEast'}    2003-01-23 00:49    530.14    2.1204e+05                 NaT    {'winter storm'}
    {'SouthEast'}    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'}

CauseLoss および RestorationTime をマージします。これらの変数は型が異なるため、table 内の table にこれらをマージします。

T2 = mergevars(T1,{'Cause','Loss','RestorationTime'},...
               'NewVariableName','LossData','MergeAsTable',true);
head(T2,3)
       Region           OutageTime       Customers                        LossData                   
                                                            Cause           Loss     RestorationTime 
    _____________    ________________    __________    ______________________________________________

    {'SouthWest'}    2002-02-01 12:18    1.8202e+06    {'winter storm'}    458.98    2002-02-07 16:50
    {'SouthEast'}    2003-01-23 00:49    2.1204e+05    {'winter storm'}    530.14                 NaT
    {'SouthEast'}    2003-02-07 21:15    1.4294e+05    {'winter storm'}     289.4    2003-02-17 08:14

入力引数

すべて折りたたむ

入力 table。table または timetable として指定します。

入力 table の変数。string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern スカラー、数値配列、または logical 配列として指定します。

マージ後の変数の名前。文字ベクトルまたは string スカラーとして指定します。

拡張機能

バージョン履歴

R2018a で導入