主要内容

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

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

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

加载样本数据并创建表

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

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

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

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

显示每个表的前5行。

头(T, 5)
ans =5×3表年龄性别吸烟者___ __________ ______ 38{'男性'}true 43{'男性'}false 38{'女性'}false 40{'女性'}false 49{'女性'}false
头(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 = [T t2];

显示的前5行T

头(T, 5)
ans =5×7表年龄性别吸烟者身高体重收缩压舒张压  ___ __________ ______ ______ ______ ________ _________ 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现在有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{“琼斯”}{‘女性’}假67 133 117 75{“棕色”}49{‘女性’}假64 119 12280

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

使用点语法添加变量

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

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

t .血压=[收缩压舒张压];头(T, 5)
ans =5×9表LastName年龄性别吸烟者身高体重收缩压舒张期血压  ____________ ___ __________ ______ ______ ______ ________ _________ _____________ {' 史密斯的38}{‘男性’}真的71 176 124 93 124 93 43{“约翰逊”}{‘男性’}假69 163 109 77 109 77{威廉姆斯的}38{‘女性’}假64 131 125 83 125 83 40{“琼斯”}{‘女性’}假67 133117 75 117 75 {'Brown' } 49 {'Female'} false 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表LastName年龄性别吸烟者身高体重收缩压舒张期血压体重指数  ____________ ___ __________ ______ ______ ______ ________ _________ _____________ ______ {' 史密斯的38}{‘男性’}真的24.547 71 176 124 93 124 93 43{“约翰逊”}{‘男性’}假69 163 109 77 109 77 24.071{威廉姆斯的}38{‘女性’}假64 131 125 83 125 83 22.486{'Jones'} 40 {'Female'} false 67 133 117 75 117 75 20.831 {'Brown'} 49 {'Female'} false 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{'Jones'} 40 {'Female'} false 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:7 10 8 9]);头(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{'Jones'} 40 {'Female'} false 67 133 20.831 117 75 117 75 {'Brown'} 49 {'Female'} false 64 119 20.426 122 80 122 80

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

删除变量

要删除表变量,请使用removevars函数。删除收缩压舒张压表变量。

T = removevars (T) {“收缩”舒张压的});头(T, 5)
ans =5×8表LastName年龄性别吸烟者身高体重血压  ____________ ___ __________ ______ ______ ______ ______ _____________ {' 史密斯38}{‘男性’}真的71 176 24.547 124 93 43{“约翰逊”}{‘男性’}假69 163 24.071 109 77{威廉姆斯的}38{‘女性’}假64 131 22.486 125 83{“琼斯”}{‘女性’}假67 133 20.831 117 75{“棕色”}49 {'Female'} false 64 119 20.426 122 80

使用点语法删除变量

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

T.Age = [];头(T, 5)
ans =5×7表LastName性别吸烟者身高体重血压  ____________ __________ ______ ______ ______ ______ _____________ {' 史密斯}{‘男性’}真的71 176 24.547 124 93{“约翰逊”}{‘男性’}假69 163 24.071 109 77{威廉姆斯的}{‘女性’}假64 131 22.486 125 83{“琼斯”}{‘女性’}假67 133 20.831 117 75{“棕色”}{‘女性’}错误64119 20.426 122 80

使用索引删除变量

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

T (:,“性别”) = [];头(T, 5)
ans =5×6表LastName吸烟者高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 = splitvars (T)“血压”“NewVariableNames”,{“收缩”舒张压的});头(T, 5)
ans =5×7表LastName吸烟者身高体重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

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

T = mergevars (T) {“收缩”舒张压的},“NewVariableName”“英国石油公司”);头(T, 5)
ans =5×6表LastName吸烟者身高体重BMI BP  ____________ ______ ______ ______ ______ __________ {' 史密斯}真的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

重新定位行以成为变量

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

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

T = splitvars (T)“英国石油公司”“NewVariableNames”,{“收缩”舒张压的});T3 = rows2vars (T)“VariableNamesSource”“姓”);T3 (: 1:5)
ans =6×5表史密斯OriginalVariableNames约翰逊威廉琼斯  _____________________ ______ _______ ________ ______ {' 吸烟者'}1 0 0 0{“高度”}71 69 64 67{“重量”}176 163 131 133{“身体质量指数”}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

另请参阅

|||||||

相关的话题