mergevars
将表或时间表变量合并成多列变量
说明
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
⋮
将变量 Systolic
和 Diastolic
合并成一个具有两列的变量。将其命名为 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
⋮
将变量合并到表中
从电子表格中读取表。要指定从电子表格中读取的列的数据类型,请使用导入选项对象。显示输出表的前八行。
opts = detectImportOptions("outages.csv"); opts.VariableTypes = ["categorical","datetime","double", ... "double","datetime","categorical"]; T1 = readtable("outages.csv",opts)
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
⋮
合并 Cause
、Loss
和 RestorationTime
。由于这些变量具有不同类型,因此将它们合并到嵌套在输出表中的一个表中。
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
⋮
输入参数
T1
— 输入表
表 | 时间表
输入表,指定为表或时间表。
vars
— 输入表中的变量
字符串数组 | 字符向量 | 字符向量元胞数组 | pattern
标量 | 数值数组 | 逻辑数组
输入表中的变量,指定为字符串数组、字符向量、字符向量元胞数组、pattern
标量、数值数组或逻辑数组。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
示例: T2 = mergevars(T1,vars,NewVariableName="MergedResults")
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: T2 = mergevars(T1,vars,"MergeAsTable",true)
NewVariableName
— 合并变量的名称
字符向量 | 字符串标量
合并变量的名称,指定为字符向量或字符串标量。
MergeAsTable
— 将变量合并到表中的标志
false
或 0
(默认) | true
或 1
将变量合并到表中的标志,指定为数值或逻辑值 1
(true
) 或 0
(false
)。将此标志设置为 true
或 1
可将指定的变量合并到一个表中,而该表嵌套在输出表的一个变量中。使用此参量合并不能串联成数组的变量。
默认值 false
会导致 mergevars
将指定的变量合并到一个多列数组中,而该数组是输出表的一个变量。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
vars
输入参量不支持模式表达式。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 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)