文档

添加、删除和重新排列表变量

这个示例展示了如何在表中添加、删除和重新排列面向列的变量。属性可以添加、移动和删除表变量addvarsmovevars,移除变量功能。作为替代方法,您还可以使用点语法或在表中建立索引来修改表变量。使用splitvarsmergevars函数用于分割多列变量并将多个变量合并为一个。最后,您可以重新定位表,使表的行成为输出表的变量rows2vars函数。

还可以使用变量编辑器修改表变量。

加载样本数据并创建表

的示例数据数组病人MAT-file。显示加载到工作区中的变量的名称和大小。

负载病人——文件病人
名称大小字节类属性年龄100x1 800双舒张期100x1 800双性别100x1 12212细胞高度100x1 800双LastName 100x1 12416细胞位置100x1 15008细胞SelfAssessedHealthStatus 100x1 12340细胞吸烟者100x1 100逻辑收缩期100x1 800双体重100x1 800双

创建两个表。创建一个表,T,从患者问卷中收集信息,并创建另一个表格,T2,数据来自患者。每个表有100行。

T =表(年龄、性别、吸烟);T2 =表(身高、体重、收缩压、舒张压);

显示每个表的前五行。

头(T, 5)
ans=5×3表年龄性别吸烟者___ ________ ______ 38“男”正确43“男”错误38“女”错误40“女”错误49“女”错误
头部(T2,5)
ans=5×4表身高体重收缩压舒张压______ ______ ________ _________ 71 176 124 93 69 163 109 77 64 131 125 83 67 133 117 75 64 119 122 80

添加从另一个表连接的变量

向表中添加变量T通过水平连接T2

T=[T2];

显示的前5行T

头(T, 5)
ans=5×7表年龄性别吸烟者身高体重收缩舒张压指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数指数

桌子T现在有7个变量和100行。

如果水平连接的表有行名,horzcat通过匹配行名连接表。因此,表必须使用相同的行名,但行顺序无关紧要。

将变量从工作区添加到表中

从工作区变量中添加患者的名字在中的第一个表变量之前T. 可以使用新位置附近的变量名称指定表中的任何位置。使用引号引用表变量的名称。但是,对于作为工作区变量的输入参数,不要使用引号。

T = addvars (T,姓,“之前”“年龄”); 头部(T,5)
ans=5×8表LastName年龄性别吸烟者身高体重收缩压舒张压  __________ ___ ________ ______ ______ ______ ________ _________ ' 史密斯“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

您还可以使用数字指定表中的位置。例如,使用数字指定位置的等价语法是T=addvars(T,LastName,'Before',1)

使用点语法添加变量

添加新表变量的另一种方法是使用点语法。当您使用点语法时,您总是添加新变量作为最后一个表变量。可以添加任意数据类型的变量,只要它的行数与表相同。

为血压创建一个新变量,作为两个变量的水平连接收缩压舒张期.将其添加到T

t .血压=[收缩压舒张压];头(T, 5)
ans=5×9表UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU'38'女'假64 131 125 83 125 83'琼斯'40'女'假67 133 117 75 117 75'布朗'49‘女性’假64 119 122 80 122 80

T现在有9个变量和100行。一个表变量可以有多个列。因此,尽管血压有两列,它是一个表变量。

添加一个新变量,体重指数,在表中T,其中包含每位患者的体重指数。体重指数是身高和体重的函数。当你计算体重指数,你可以参考重量高度中的变量T

T.BMI = (T.Weight * 0.453592)。/ (T.Height * 0.0254)。^ 2;

运营商./.^在计算体重指数分别表示按元素的除法和幂运算。

显示表的前五行T

头(T, 5)
ans=5×10表“UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU1.547“约翰逊”43“男性”69 163 109 77 109 77 24.071“威廉姆斯”38“女性”64 131 125 83 125 83 22.486“琼斯”40“女性”假67 133 117 75 117 75 20.831“棕色”49“女性”假64 119 122 80 122 80 20.426

在表中移动变量

移动表格变量体重指数使用movevars函数,以便它在变量之后重量. 按名称指定表变量时,请使用引号。

T = movevars (T)“体重指数”“之后”“重量”); 头部(T,5)
ans=5×10表LastName年龄性别吸烟者身高体重BMI收缩压舒张期血压  __________ ___ ________ ______ ______ ______ ______ ________ _________ _____________ ' 史密斯“38”男“真正的71 176 93 124 93 124 24.547”约翰逊“43”男“假69 163 77 109 77 109 24.071”威廉姆斯“38”女“假64 131 83 125 83 125 22.486”琼斯“40”女“虚假67 133 20.831 117 75 117 75 'Brown' 49 'Female' false 64 119 20.426 122 80 122 80

您还可以使用数字指定表中的位置。例如,使用数字指定位置的等价语法是T = movevars (T,“身体质量指数”,”之后,6).按名称引用变量通常更方便。

使用索引移动表变量

作为一种替代方法,您可以通过索引来移动表变量。您可以使用与为矩阵建立索引相同的语法为表建立索引。

移动血压所以它就在旁边体重指数

T=T(:,[1:71089]);头部(T,5)
ans=5×10表LastName BMI年龄性别吸烟者身高体重血压收缩压舒张压  __________ ___ ________ ______ ______ ______ ______ _____________ ________ _________ ' 史密斯“38”男“真正的71 176 93 124 93 124 24.547”约翰逊“43”男“假69 163 77 109 77 109 24.071”威廉姆斯“38”女“假64 131 83 125 83 125 22.486”琼斯“40”女“虚假67 133 20.831 117 75 117 75 'Brown' 49 'Female' false 64 119 20.426 122 80 122 80

在包含多个变量的表中,使用movevars函数。

删除变量

要删除表变量,请使用移除变量作用删除收缩压舒张期表变量。

T = removevars (T) {“收缩”“舒张期”});头(T, 5)
ans=5×8表(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU女性67 133 20.831 117 75棕色49女性64 119二十点四二六一二二八零

使用点语法删除变量

作为一种替代方法,您可以使用点语法和空矩阵删除变量,[].删除年龄表中的变量。

T.Age = [];头(T, 5)
ans=5×7表)UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU假64 119 20.426 122 80

使用索引删除变量

你也可以使用索引和空矩阵来删除变量,[].删除性别表中的变量。

T (:,“性别”) = [];头(T, 5)
ans=5×6表姓吸烟者身高体重BMI血压__________ ____________ ____________ _____________“史密斯”正确71 176 24.547 124 93“约翰逊”错误69 163 24.071 109 77“威廉姆斯”错误64 131 22.486 125 83“琼斯”错误67 133 20.831 117 75“布朗”错误64 119 20.426 122 80

分解和合并表变量

若要将多列表变量分割为每个有一列的变量,请使用splitvars功能。把变量血压为两个变量。

T=拆分变量(T,“血压”“NewVariableNames”,{“收缩”“舒张期”});头(T, 5)
ans=5×7表姓氏吸烟者身高体重BMI收缩舒张指数(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

类似地,可以使用。将相关的表变量分组到一个变量中mergevars作用结合收缩压舒张期返回到一个变量,并命名它英国石油公司

T = mergevars (T) {“收缩”“舒张期”},“NewVariableName”“英国石油公司”); 头部(T,5)
ans=5×6表姓氏吸烟者身高体重BMI BP uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

将行重新定向为变量

属性可以重新定位表或时间表的行,使它们成为输出表的变量rows2vars函数。但是,如果表有多列变量,那么在调用之前必须将它们分开rows2vars

重新调整行T.指定中病人的名字T是输出表中表变量的名称。的第一个变量T3的变量名T. 的每个剩余变量T3的对应行中的数据T

T=拆分变量(T,“英国石油公司”“NewVariableNames”,{“收缩”“舒张期”});T3 = rows2vars (T)“VariableNamesSource”“姓”); T3(:,1:5)
ans=6×5表OriginalVariableNames Smith Johnson Williams Jones _____________________ _____________________ ______ '吸烟者' 10 0 '身高' 71 69 64 67 '体重' 176 163 131 133 'BMI' 24.547 24.071 22.486 20.831 '收缩压' 124 109 125 117 '舒张压' 93 77 83 75

您可以使用点语法T3以数组形式访问患者数据。但是,如果不能连接输入表的行值,则输出表的变量是单元格数组。

T3。史密斯
ans=6×11.0000 71.0000 176.0000 24.5467 124.0000 93.0000

另请参阅

|||||||

相关的话题

这个话题有用吗?