mergevars
将表或时间表变量合并成多列变量
语法
说明
T2 = mergevars(
将 T1
,vars
)vars
指定的表变量进行合并以在 T2
中创建一个多列变量。T1
中的所有其他变量不变。您可以按名称、按位置或使用逻辑索引来指定变量。
例如,如果 T1
有名为 var3
和 var5
的变量,则您可以使用 T2 = mergevars(T1,["var3","var5"])
将它们组合成一个包含两列的变量。T2
中的组合变量命名为 var3
。
默认情况下,T2
中合并变量的名称采用 Var
的形式,其中 N
是合并变量的位置。例如,如果合并变量是 N
T2
中的第三个变量,则它的名称是 Var3
。
要拆分多列变量,请使用 splitvars
函数。
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)
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
合并成一个具有两列的变量。将其命名为 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
以表的形式合并变量
从电子表格中读取一个表。显示前三行。
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'}
合并 Cause
、Loss
和 RestorationTime
。由于这些变量具有不同的类型,因此将它们合并成一个嵌套的表。
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
输入参数
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
vars
输入参数不支持模式表达式。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅Run MATLAB Functions in Thread-Based Environment。
版本历史记录
在 R2018a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)