ドキュメンテーション

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

mergevars

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

構文

T2 = mergevars(T1,vars)
T2 = mergevars(T1,vars,'NewVariableName',newName)
T2 = mergevars(___,'MergeAsTable',true)

説明

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

既定では、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)
ans=3×7 table
     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)
ans=3×6 table
     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)
ans =

  3x6 table

      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)
ans =

  3x4 table

      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 の変数。文字ベクトル、文字ベクトルの cell 配列、string 配列、数値配列、または logical 配列として指定します。

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

R2018a で導入