主要内容

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

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

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

加载样例数据并创建表

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

负载病人——文件病人
名称大小字节分类属性年龄100x1 800双舒张期100x1 800双性别100x1 11412 cell身高100x1 800双姓氏100x1 11616 cell位置100x1 14208 cell自我评估健康状态100x1 11540 cell吸烟者100x1 100逻辑收缩期100x1 800双体重100x1 800双

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

T = table(年龄,性别,吸烟者);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];

的前五行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,LastName,“之前”“年龄”);头(T, 5)
ans =5×8表姓氏年龄性别吸烟者身高体重收缩期舒张压____________ ___ __________ ____________ ______ ________ _________{'史密斯'}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表姓氏年龄性别吸烟者身高体重收缩压舒张压____________ _____________ ____________ ______ ________ _________ _____________{'史密斯'}38{'男性'}真71 176 124 93 124 93{'约翰逊'}43{'男性'}假69 163 109 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行。一个表变量可以有多个列。因此,尽管血压有两列,它是一个表变量。

添加一个新变量,身体质量指数,在表中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{“琼斯”}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 22.486 125 83 125 83{“琼斯”}{‘女性’}假67 133 75 117 75 117 20.831{“棕色”}49{‘女性’}假64 119 80 122 80 122 20.426

还可以使用数字指定表中的位置。例如,使用数字指定位置的等效语法是T = movevars(T,'BMI ', 'After',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 22.486 125 83 125 83{“琼斯”}{‘女性’}假67 133 75 117 75 117 20.831{“棕色”}49{‘女性’}假64 119 80 122 80 122 20.426

在具有许多变量的表中,通常使用movevars函数。

删除变量

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

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

使用点语法删除变量

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

t .年龄= [];头(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

使用索引删除变量

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

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表姓氏吸烟者身高体重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表原始变量名史密斯约翰逊威廉姆斯琼斯_____________________ _____________________ ______{'吸烟者'}10 0 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

另请参阅

|||||||

相关的话题