Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

mergevars

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

说明

示例

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

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

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

示例

T2 = mergevars(T1,vars,'NewVariableName',newName) 指定多列变量的名称。

示例

T2 = mergevars(___,'MergeAsTable',true) 将指定的变量合并成表,而不是数组。新表本身就是输出表 T2 的一个变量。使用此语法合并不能串联成数组的变量。您可以将此语法与前面语法中的任何输入参数结合使用。

示例

全部折叠

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

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(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    

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

从电子表格中读取一个表。显示前三行。

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'}

合并 CauseLossRestorationTime。由于这些变量具有不同的类型,因此将它们合并成一个嵌套的表。

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

输入参数

全部折叠

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

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

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

扩展功能

在 R2018a 中推出