主要内容

mergevars

将表或时间表变量合并成多列变量

说明

T2 = mergevars(T1,vars)vars 指定的表变量进行合并以在 T2 中创建一个多列变量。T1 中的所有其他变量不变。您可以按名称、按位置或使用逻辑索引来指定变量。

例如,如果 T1 有名为 var3var5 的变量,则您可以使用 T2 = mergevars(T1,["var3" "var5"]) 将它们组合成一个包含两列的变量。

默认情况下,T2 中合并变量的名称采用 VarN 的形式,其中 N 是合并变量的位置。例如,如果合并变量是 T2 中的第三个变量,则它的名称是 Var3

要拆分多列变量,请使用 splitvars 函数。

示例

T2 = mergevars(T1,vars,Name=Value) 可在前面语法中的输入参量外使用一个或多个名称-值参量来指定选项。例如,要指定合并变量的名称,请将 NewVariableName 设置为您指定的名称。

示例

示例

全部折叠

使用工作区变量创建一个表。

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"

合并第二个和第三个变量。新的变量有两列。

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 文件中的数据数组创建一个表。

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    
      ⋮

将变量 SystolicDiastolic 合并成一个具有两列的变量。将其命名为 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  
      ⋮

从电子表格中读取表。

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"
      ⋮

合并 CauseLossRestorationTime。由于这些变量具有不同数据类型,因此将它们合并到嵌套在输出表中的一个表中。

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
      ⋮

输入参数

全部折叠

输入表,指定为表或时间表。

输入表中的变量,指定为字符串数组、字符向量、字符向量元胞数组、pattern 标量、数值数组或逻辑数组。

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

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

合并变量的名称,指定为字符串标量或字符向量。

将变量合并到表中的标志,指定为数值或逻辑值 1 (true) 或 0 (false)。将此标志设置为 true1 可将指定的变量合并到一个表中,而该表嵌套在输出表的一个变量中。使用此参量合并不能串联成数组的变量。

默认值 false 会导致 mergevars 将指定的变量合并到一个多列数组中,而该数组是输出表的一个变量。

输出参量

全部折叠

具有合并变量的输出表,以表或时间表形式返回。

扩展功能

全部展开

版本历史记录

在 R2018a 中推出