主要内容

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

例子

全部折叠

创建表,然后重新定位他们在新表行变量。

加载数据的数组patients.mat文件。创建一个表,其中包含的,性别,年龄,高度,重量变量。

负载病人T1 =表(LastName、性别、年龄、身高、体重);头(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有默认的名字,Var1VarNN变量。

T2 (: 1:4)
ans =5×4表OriginalVariableNames Var1 Var2 Var3 _____________________ _____ ___________ _______{的LastName}{“史密斯”}{“约翰逊”}{威廉姆斯的}{‘性别’}{‘男性’}{‘男性’}{‘女性’}{‘年龄’}{[38]}{[43]}{[38]}{“高度”}{[71]}{[69]}{[64]}{“重量”}{[176]}{[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表史密斯OriginalVariableNames约翰逊威廉姆斯_____________________说__________{‘性别’}{‘男性’}{‘男性’}{‘女性’}{‘年龄’}{[38]}{[43]}{[38]}{“高度”}{[71]}{[69]}{[64]}{“重量”}{[176]}{[163]}{[131]}

加载一个时间表并显示它。

负载bostonTT波士顿
波士顿=6×3的时间表时间临时雨风速___________________ _____上2016-06-09 06: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 18:02:57 58.8 6.2 0.33 62.3 2.6 0.87 2016-06-10

重新定位它这行成为输出变量。的rows2vars函数将行乘以变成的名字,但修改他们,使他们是有效的变量名。另外,返回的输出参数rows2vars总是一个表,即使输入参数是一个时间表。

T = rows2vars(波士顿)
警告:表变量名称是无效的MATLAB标识符已被修改。自表变量名称必须是唯一的,发生的任何表变量名称匹配新的标识符也被修改。使用原始行名称作为新变量名称,设置“PreserveVariableNames”为true。
T =表3×7OriginalVariableNames 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{“风速”}{‘雨’}0.05 0.08 0.13 6.2 0.15 0.87 0.33

从R2020a开始,你可以把名字从输入表或时间表,并使用它们作为变量名输出表中没有修改。保留原来的名称,使用“VariableNamingRule”名称-值对的论点。

加载一个时间表并显示它。

负载bostonTT波士顿
波士顿=6×3的时间表时间临时雨风速___________________ _____上2016-06-09 06: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 18:02:57 58.8 6.2 0.33 62.3 2.6 0.87 2016-06-10

调整时间表,以便其行乘以成为输出表中变量名。转换datetime值字符串和保存生成的名称使用“VariableNamingRule”名称-值对。

T = rows2vars(波士顿,“VariableNamingRule”,“保存”)
T =表3×7OriginalVariableNames 2016-06-09 06:03:00 2016-06-09 12:00:23 2016-06-09 18:02:57 2016-06-10 06:01:47 2016-06-10 12:06:00 2016-06-10 18:02:57 _____________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________{‘临时’}59.5 63 61.7 55.4 62.3 58.8 0.1 2.3 3.1 5.7 2.6{“风速”}{‘雨’}0.05 0.08 0.13 6.2 0.15 0.87 0.33

的变量名T不是有效的MATLAB标识符,因为日期开始一个数字。不过,您可以使用点符号来引用这些变量,使用括号。

t (“2016-06-09 06:03:00”)
ans =3×159.5000 0.1000 0.0500

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

T1 = readtable (“patients.xls”);头(T1, 3)
ans =表3×10LastName性别年龄位置身高体重吸烟者收缩压舒张压SelfAssessedHealthStatus _______ __________ ___看上去_____________________________长得一样________ _____ ________________________{“史密斯”}{‘男性’}38{县综合医院的}71 176真正的124 93{‘优秀’}{“约翰逊”}{‘男性’}43 {VA医院的}69 163错误109 77{‘公平’}{威廉姆斯的}{‘女性’}38{圣。玛丽的医学中心}64 131错误125 83{‘好’}

调整的行T1变量的一个新表,T2。指定该变量的T1是变量的名字的来源T2

T2 = rows2vars (T1,“VariableNamesSource”,“姓”);

显示的第一个四个变量T2。的第一个变量T2包含的变量的名称T1。其余的变量T2对应于行T1

T2 (: 1:4)
ans =9×4表史密斯OriginalVariableNames约翰逊威廉姆斯____________________________ ___________________________售予_____________________________{‘性别’}{‘男性’}{‘男性’}{‘女性’}{‘年龄’}{[38]}{[43]}{[38]}{“位置”}{县综合医院的}{VA医院的}{圣。玛丽的医学中心}{“高度”}{[71]}{[69]}{[64]}{“重量”}{[176]}{[163]}{[131]}{“烟民”}{[1]}{[0]}{[0]}{“收缩”}{[124]}{[109]}{[125]}{舒张的}{[93]}{[77]}{[83]}{‘SelfAssessedHealthStatus}{‘优秀’}{‘公平’}{‘好’}

显示的数据T2.Smith。在这个例子中,每个变量的T2是9-by-1细胞数组,因为行中的值T1不能连接到阵列。

T2.Smith
ans =9×1单元阵列{“男性”}{[38]}{县综合医院的}{[71]}{[176]}{[1]}{[124]}{[93]}{‘优秀’}

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

T1 = readtable (“patients.xls”,“ReadRowNames”,真正的);头(T1, 3)
ans =3×9表性别年龄位置身高体重吸烟者收缩压舒张压SelfAssessedHealthStatus __________ ___看上去_____________________________长得一样________ _____ ________________________史密斯{‘男性’}38{县综合医院的}71年约翰逊176真正的124 93{‘优秀’}{‘男性’}43 {VA医院的}69威廉姆斯163错误109 77{‘公平’}{‘女性’}{38的圣。玛丽的医学中心}64 131错误125 83{‘好’}

调整指定变量T1和抛弃。指定数据变量的名字,使用单元阵列的特征向量。

T2 = rows2vars (T1,“DataVariables”,{“性别”,“年龄”,“高度”,“重量”});T2 (: 1:4)
ans =4×4表史密斯OriginalVariableNames约翰逊威廉姆斯_____________________说__________{‘性别’}{‘男性’}{‘男性’}{‘女性’}{‘年龄’}{[38]}{[43]}{[38]}{“高度”}{[71]}{[69]}{[64]}{“重量”}{[176]}{[163]}{[131]}

您还可以指定变量的数据输入表中的位置。指定的位置变量,使用数值数组。

T3 = rows2vars (T1,“DataVariables”六9],[1 2);T3 (: 1:4)
ans =6×4表史密斯OriginalVariableNames约翰逊威廉姆斯____________________________ _________________ ________ __________{‘性别’}{‘男性’}{‘男性’}{‘女性’}{‘年龄’}{[38]}{[43]}{[38]}{“烟民”}{[1]}{[0]}{[0]}{“收缩”}{[124]}{[109]}{[125]}{舒张的}{[93]}{[77]}{[83]}{‘SelfAssessedHealthStatus}{‘优秀’}{‘公平’}{‘好’}

输入参数

全部折叠

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

名称-值参数

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

例子:“VariableNamingRule”,“保存”保留原来的名称取自T1MATLAB,无需修改有效®标识符。

变量T1包含变量名称,指定为逗号分隔组成的“VariableNamesSource”和一个特征向量,字符串标量,正整数,或逻辑向量。的rows2vars解释的价值功能“VariableNamesSource”如表所示。

的价值“VariableNamesSource”

意义

特征向量或字符串标量

输入表中一个变量的名称T1

整数n

nth变量T1

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

nth元素是1(真正的),对应nth的变量T1。所有其他的元素0()。

时的值“VariableNamesSource”必须是一个名称、数量或逻辑数组,指定一个表变量,变量本身可以有任何数据类型,这些限制。

  • 表中包含的值指定的变量必须有一个数据类型允许的值转换为字符串。例如,的价值“VariableNamesSource”可以包含一个表变量的名称吗datetime数组,因为datetime值可以转换为字符串。

  • 人名的数目从指定表变量必须匹配输入表的行数。

选择变量T1,指定为逗号分隔两人组成的“DataVariables”和一个特征向量,单元阵列特征向量,字符串数组,正整数,向量的正整数,逻辑向量,或下标对象。的rows2vars函数选择指定的变量值“DataVariables”并且只有那些变量的行T2。其余的变量T1被丢弃。

规则命名变量T2,指定为逗号分隔两人组成的“VariableNamingRule”和的值“修改”“保存”

的值“VariableNamingRule”指定以下规则命名变量输出表中或时间表。

的价值“VariableNamingRule”

规则

“修改”(默认)

修改名字取自输入表或时间表,以便相应的输出的变量名也有效的MATLAB标识符。

“保存”

保留原来的名称取自输入表或时间表。对应的输出变量名可以有Unicode®字符,包括空格和非ascii字符。

注意:在某些情况下,rows2vars必须修改原来的名字即使“保存”是规则。这种情况下包括:

  • 重复的名字

  • 名字与表维度名称冲突

  • 名字与保留名称冲突。

  • 名字的长度超过的价值namelengthmax

扩展功能

介绍了R2018a