メインコンテンツ

mergevars

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

説明

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

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

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

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

T2 = mergevars(T1,vars,Name=Value) は、前述の構文の入力引数に加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、マージされる変数の名前を指定するには、NewVariableName を、指定する名前に設定します。

すべて折りたたむ

ワークスペース変数から 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 を作成します。

load patients
T1 = table(Age,Height,Weight,Systolic,Diastolic)
T1=100×5 table
    Age    Height    Weight    Systolic    Diastolic
    ___    ______    ______    ________    _________

    38       71       176        124          93    
    43       69       163        109          77    
    38       64       131        125          83    
    40       67       133        117          75    
    49       64       119        122          80    
    46       68       142        121          70    
    33       64       142        130          88    
    40       68       180        115          82    
    28       68       183        115          78    
    31       66       132        118          86    
    45       68       128        114          77    
    42       66       137        115          68    
    25       71       174        127          74    
    39       72       202        130          95    
    36       65       129        114          79    
    48       71       181        130          92    
      ⋮

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

T2 = mergevars(T1,["Systolic" "Diastolic"], ...
               NewVariableName="BloodPressure")
T2=100×4 table
    Age    Height    Weight    BloodPressure
    ___    ______    ______    _____________

    38       71       176       124     93  
    43       69       163       109     77  
    38       64       131       125     83  
    40       67       133       117     75  
    49       64       119       122     80  
    46       68       142       121     70  
    33       64       142       130     88  
    40       68       180       115     82  
    28       68       183       115     78  
    31       66       132       118     86  
    45       68       128       114     77  
    42       66       137       115     68  
    25       71       174       127     74  
    39       72       202       130     95  
    36       65       129       114     79  
    48       71       181       130     92  
      ⋮

スプレッドシートから table を読み取ります。

T1 = readtable("outages.csv",TextType="string")
T1=1468×6 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"   
    "West"         2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    "equipment fault"
    "MidWest"      2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    "severe storm"   
    "West"         2003-06-18 02:49         0             0    2003-06-18 10:54    "attack"         
    "West"         2004-06-20 14:39    231.29           NaN    2004-06-20 19:16    "equipment fault"
    "West"         2002-06-06 19:28    311.86           NaN    2002-06-07 00:51    "equipment fault"
    "NorthEast"    2003-07-16 16:23    239.93         49434    2003-07-17 01:12    "fire"           
    "MidWest"      2004-09-27 11:09    286.72         66104    2004-09-27 16:37    "equipment fault"
    "SouthEast"    2004-09-05 17:48    73.387         36073    2004-09-05 20:46    "equipment fault"
    "West"         2004-05-21 21:45    159.99           NaN    2004-05-22 04:23    "equipment fault"
    "SouthEast"    2002-09-01 18:22    95.917         36759    2002-09-01 19:12    "severe storm"   
    "SouthEast"    2003-09-27 07:32       NaN    3.5517e+05    2003-10-04 07:02    "severe storm"   
    "West"         2003-11-12 06:12    254.09    9.2429e+05    2003-11-17 02:04    "winter storm"   
    "NorthEast"    2004-09-18 05:54         0             0                 NaT    "equipment fault"
      ⋮

CauseLoss および RestorationTime をマージします。これらの変数はデータ型が異なるため、出力 table 内で入れ子にされた table にこれらをマージします。

T2 = mergevars(T1,["Cause" "Loss" "RestorationTime"], ...
               NewVariableName="LossData",MergeAsTable=true)
T2=1468×4 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
    "West"         2004-04-06 05:44    3.4037e+05    "equipment fault"    434.81    2004-04-06 06:10
    "MidWest"      2002-03-16 06:18    2.1275e+05    "severe storm"       186.44    2002-03-18 23:23
    "West"         2003-06-18 02:49             0    "attack"                  0    2003-06-18 10:54
    "West"         2004-06-20 14:39           NaN    "equipment fault"    231.29    2004-06-20 19:16
    "West"         2002-06-06 19:28           NaN    "equipment fault"    311.86    2002-06-07 00:51
    "NorthEast"    2003-07-16 16:23         49434    "fire"               239.93    2003-07-17 01:12
    "MidWest"      2004-09-27 11:09         66104    "equipment fault"    286.72    2004-09-27 16:37
    "SouthEast"    2004-09-05 17:48         36073    "equipment fault"    73.387    2004-09-05 20:46
    "West"         2004-05-21 21:45           NaN    "equipment fault"    159.99    2004-05-22 04:23
    "SouthEast"    2002-09-01 18:22         36759    "severe storm"       95.917    2002-09-01 19:12
    "SouthEast"    2003-09-27 07:32    3.5517e+05    "severe storm"          NaN    2003-10-04 07:02
    "West"         2003-11-12 06:12    9.2429e+05    "winter storm"       254.09    2003-11-17 02:04
    "NorthEast"    2004-09-18 05:54             0    "equipment fault"         0                 NaT
      ⋮

入力引数

すべて折りたたむ

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

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

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: T2 = mergevars(T1,vars,NewVariableName="MergedResults")

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

変数を table にマージするフラグ。数値または logical 1 (true) または 0 (false) として指定します。指定した変数を出力 table の変数に入れ子にされた table にマージするには、このフラグを true または 1 に設定します。この引数を使用して、配列に連結できない変数をまとめます。

既定値 false を使用すると、mergevars は指定した変数を、出力 table の変数である 1 つの複数列配列にマージします。

出力引数

すべて折りたたむ

マージした変数を含む出力 table。table または timetable として返されます。

拡張機能

すべて展開する

バージョン履歴

R2018a で導入