主要内容

Rows2vars.

重新定位表或时间表,使行成为变量

描述

例子

t2 = rows2vars(T1.的行重新定位T1.,使它们成为输出表中的变量T2.,如图所示。如果Rows2vars.可以串联行的内容T1.,然后是相应的变量T2.是阵列。否则,变量T2.是细胞阵列。Rows2vars.但是总是返回一个表T1.可以是一张桌子,也可以是一张时间表。

Rows2vars.函数复制变量的名称T1.到一个新的变量T2..如果T1.行名或行时间,那么这些名称或时间成为变量名T2..除此以外,Rows2vars.生成的名字Var1,…,VarN作为变量名称T2.

例子

t2 = rows2vars(T1.名称,价值使用一个或多个名称值对参数指定其他参数。例如,您可以使用'variablenamessource'名称值对参数指定变量名称的源T2.

例子

全部收缩

创建表,然后重新定位其行以在新表中成为变量。

控件中加载数据数组患者文件。控件创建包含性别年龄高度, 和重量变量。

加载病人t1 =表(姓氏,性别,年龄,高度,重量);头(T1,3)
ans =3×5表LastName性别年龄身高体重  ____________ __________ ___ ______ ______ {' 史密斯的}{‘男性’}38 71 176{“约翰逊”}{‘男性’}43 69 163{威廉姆斯的}{‘女性’}38 64 131

重新定位T1的行为输出表的变量。

t2 = Rows2Vars(T1);

显示前四个变量T2..第一变量T2.的变量名T1..剩余的变量T2.对应于T1..自从T1.没有任何行标签,变量T2.有默认名称,var1瓦伦为了N变量。

T2 (: 1:4)
ans =5×4表OriginalVariaBlenames var1 var2 var3 _____________________ _________ ________________________ {'史密斯'} {'JOHNSON'} {'JOHNSON'} {'MEALOMS'} {'MEAL'} {'MALE'} {'MEALO'} {'女性'} {'年龄'} {[38]} {[43]} {[38]} {'height'} {[71] {{[64] {'权重'} {'} {'权力'} {[163]} {[131]}

使用行名称创建一个表。如果表有行名称,那么Rows2vars.将行名转换为变量名。

T3 =表(性别、年龄、身高、体重、“RowNames”、LastName);头(T3, 3)
ans =3×4表性别年龄身高体重__________ _________ ______史密斯{“男性”}38 71 176约翰逊{“男性”}43 69 163威廉姆斯{“女性”}38 64 131

的行重新定位T3.

T4 = Rows2Vars(T3);T4(:,1:4)
ans =4×4表TrounctionVariablenames史密斯johnson威廉姆斯_____________________________________________height'} {[71]} {[64]} {'权重'} {[176] {[163] {[131] {[

加载时间表并显示出来。

加载bostonTT波士顿
波士顿=6×3时间表时间临时风速雨______________________________________________ ____ 2016-03:00 59.5 0.1 0.05 2016-06-09 12:00:23 63 2.3 0.08 2016-06-09 18:02:57 61.7 3.1 0.13 2016-06-10 06:01:47 55.4 5.7 0.15 2016-06-10 12:06:00 62.3 2.6 0.87 2016-06-10 18:02:57 58.8 6.2 0.33

重新定位它,以使其行成为输出中的变量。这Rows2vars.函数将行时间转换为名称,但是修改它们,以便它们是有效的变量名称。此外,返回的输出参数Rows2vars.总是一个表,即使输入参数是一个时间表。

t = Rows2vars(波士顿)
警告:表变量名不是有效的MATLAB标识符已被修改。由于表变量名必须是唯一的,因此与新标识符匹配的任何表变量名也会被修改。要使用原始的行名作为新的变量名,请将'PreserveVariableNames'设置为true。
t =3×7表OriginalVariableNames x2016_06_0906_03_00 x2016_06_0912_00_23 x2016_06_0918_02_57 x2016_06_1006_01_47 x2016_06_1012_06_00 x2016_06_1018_02_57 _____________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ { '温度'} 59.5 63 61.7 55.4 62.3 58.8 { '风速'} 0.1 2.3 3.1 5.7 2.6 6.2 { '清除'} 0.05 0.08 0.13 0.15 0.87 0.33

从R2020a开始,您可以从输入表或时间表中获取名称,并将它们作为输出表中的变量名称使用,而无需修改。若要保存原始名称,请使用'variablenamingrule'名称值对参数。

加载时间表并显示出来。

加载bostonTT波士顿
波士顿=6×3时间表时间临时风速雨______________________________________________ ____ 2016-03:00 59.5 0.1 0.05 2016-06-09 12:00:23 63 2.3 0.08 2016-06-09 18:02:57 61.7 3.1 0.13 2016-06-10 06:01:47 55.4 5.7 0.15 2016-06-10 12:06:00 62.3 2.6 0.87 2016-06-10 18:02:57 58.8 6.2 0.33

重新定向时间表,使其行时间成为输出表中的变量名称。转换约会时间字符串的值并使用该值使用'variablenamingrule'名称-值对。

t = Rows2vars(波士顿,'variablenamingrule'“保存”
t =3×7表notionvariablenames 2016-06-09 06:03:00 2016-06-09 2016-06-09 18:02:57 2016-06-10 06:01:47 2016-06-10 12:06:0.0.2016-06-10 18:02:57 _____________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ {'Temp' } 59.5 63 61.7 55.4 62.3 58.8 {'WindSpeed'} 0.1 2.3 3.1 5.7 2.6 6.2 {'Rain' } 0.05 0.08 0.13 0.15 0.87 0.33

变量名称T.没有有效的MATLAB标识符,因为日期以数字开头。但是,您可以使用点表示法来使用括号来引用此类变量。

T.('2016-06-09 06:03:00'
ans =.3×159.5000 0.1000 0.0500.

从电子表格读取数据到表中。显示前三行。

t1 =可读性('患者xls');头(T1,3)
ans =表3×10名字性别年龄所在地身高体重吸烟者心脏收缩舒张SelfAssessedHealthStatus ____________ __________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________ { '史密斯'} { '男'} 38 { '县综合医院'} 71 176真正的124 93 { '优秀'} {”约翰逊'} {'male'} 43 {'va医院'} 69 163 false 109 77 {'fair'} {'williams'} {'女性'} 38 {'St.玛丽的医疗中心'} 64 131 false 125 83 {'好'}

的行重新定位T1.是一个新表的变量,T2..指定变量的T1.变量名的来源是T2.

T2 = rows2vars (T1,'variablenamessource''姓');

显示前四个变量T2..第一变量T2.的变量名T1..剩余的变量T2.对应于T1.

T2 (: 1:4)
ans =9×4表TrounctionVariablenames史密斯约翰逊威廉姆斯___________________________________________________________________________________________'mal'} {'male'} {'女性'} {'女性'} {[38]} {[38]} {[38]} {[38]} {[位置'} {'县普通医院'} {'va医院'} {'St.玛丽的医疗中心'} {'height'} {[71]} {[69]} {'权力'} {'} {[176] {[131]}{[0]} {'systolic'} {[109]} {[09]} {{[83]} {'selfaseessedhealthstatus'} {'separt'} {'fair'} {'好'}

显示数据T2.Smith..在本例中,每个变量T2.是一个9×1个单元格阵列,因为行中的值T1.不能连接到数组中。

T2.Smith.
ans =9×1单元阵列{'male'} {[38]} {'entival hospital'} {[71]} {[171]} {[1]} {[94] {'septry'}

从电子表格读取数据到表中。使用电子表格的第一列作为表的行名称。显示前三行。

t1 =可读性('患者xls'“ReadRowNames”,真的);头(T1,3)
ans =3×9表性别年龄所在地身高体重吸烟者心脏收缩舒张SelfAssessedHealthStatus __________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________史密斯{ '男'} 38 { '县综合医院'} 71 176真正的124 93 { '优秀'}约翰逊{ '男'} 43 {'Va Hospital'} 69 163 False 109 77 {'Fair'}威廉姆斯{女性'} 38 {'St.玛丽的医疗中心'} 64 131 false 125 83 {'好'}

重新定位指定的变量T1.并丢弃其余的。要按名称指定数据变量,请使用字符向量的单元格数组。

T2 = rows2vars (T1,'datavariables',{“性别”'年龄'“高度”'重量'});T2 (: 1:4)
ans =4×4表TrounctionVariablenames史密斯johnson威廉姆斯_____________________________________________height'} {[71]} {[64]} {'权重'} {[176] {[163] {[131] {[

您还可以通过输入表中的位置指定数据变量。要指定变量的位置,请使用数字数组。

t3 = Rows2vars(T1,'datavariables',[1 2 6:9]);T3(:,1:4)
ans =6×4表TrounctionVariablenames史密斯johnson威廉姆斯__________________________________________________________________________________________________吸烟者'} {[1]} {[0]} {[0]} {'systolic'} {[124] {[109] {{'diaStolic'} {[93]} {[93]} {[{[83]} {'selfassessedhealthstatus'} {'separessedhealthstatus'} {'fair'} {'fair'} {'好'}

输入参数

全部收缩

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

名称值对参数

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“VariableNamingRule”,“保存”留下原始名称T1.,不修改它们有效的matlab®身份标识。

可变的T1.包含变量名称,指定为逗号分隔的对组成'variablenamessource'和字符矢量,字符串标量,正整数或逻辑向量。这Rows2vars.功能解释值'variablenamessource'如表所示。

的价值'variablenamessource'

意义

字符矢量或字符串标量

输入表中的变量的名称T1.

整数N

N变量in.T1.

逻辑向量,其长度等于变量的数量T1.

Nth元素是1真的),对应于NTh变量T1..所有其他元素都是0.错误的)。

虽然价值'variablenamessource'必须是指定表变量的名称,编号或逻辑数组,变量本身可以具有任何数据类型,其中包含这些限制。

  • 指定表变量中包含的值必须具有数据类型,允许将值转换为字符串。例如,值'variablenamessource'可以是包含a的表变量的名称约会时间阵列,因为约会时间值可以转换为字符串。

  • 从指定的表变量拍摄的名称数必须与输入表的行数匹配。

选择变量T1.,指定为逗号分隔的配对组成'datavariables'字符向量,字符向量的单元数组,字符串数组,正整数,正整数的向量,逻辑向量,或下标对象。这Rows2vars.功能选择由值指定的变量'datavariables'并且重新定位只有那些变量成为行的行T2..剩余的变量T1.被丢弃。

命名变量的规则T2.,指定为逗号分隔的配对组成'variablenamingrule'并且是价值'调整'或者“保存”

价值'variablenamingrule'在输出表或时间表中指定以下命名规则。

的价值'variablenamingrule'

规则

'调整'(默认)

修改从输入表或时间表中提取的名称,以便输出中相应的变量名称也是有效的MATLAB标识符。

“保存”

保留从输入表或时间表中提取的原始名称。输出中相应的变量名可以使用任何Unicode®字符,包括空格和非ascii字符。

笔记:在某些情况下,Rows2vars.即使在何时必须修改原始名称“保存”是规则。这种情况下包括:

  • 重复名称

  • 与表维度名称冲突的名称

  • 与保留名称冲突的名称。

  • 长度超过价值的名称namelengthmax.

扩展功能

在R2018A介绍