主要内容

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

这个示例展示了如何在表中添加、删除和重新排列面向列的变量。属性可以添加、移动和删除表变量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 =表(身高,体重,收缩压,舒张压);

显示每个表的第一五行。

头(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 = [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,姓氏, '前',1)

使用点语法添加变量

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

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

t .血压=[收缩压舒张压];头(T, 5)
ans =.5×9表名字年龄性别吸烟者身高体重收缩压舒张血压____________ ___ __________ ______ ______ ________ _________ _____________ { '史密斯'} 38 { '男'}真71 176 124 93 124 93 { '约翰逊'} 43 { '男'}假69 163109 77 109 77 { '威廉斯'} 38 { '女'}假64 131 125 83 125 83 { '琼斯'} 40 { '女'}假67 133 117 75 117 75 { '布朗'} 49 { '女'}假64 119 122 80 122 80

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

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

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

运营商./.^在计算BMI.表示逐元素除法和求幂,分别。

显示表的前五行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

在表中移动变量

移动表变量BMI.使用movevars函数,以便它在变量之后重量.当您指定名称的表变量,使用引号。

T = movevars (T)'BMI''后''重量');头(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).按名称引用变量通常更方便。

将表变量使用索引

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

移动血压所以,这是旁边BMI.

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

另请参阅

|||||||

相关的话题