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