主要内容

在表和时间表操作中使用行标签

表格和时间表提供了标记数据中的行的方法。在表中,可以用名称标记行。在时间表中,必须用日期、时间或两者同时标记行。对于表,行名是可选的,但是对于时间表,行时间是必需的。这些行标签是表或时间表中的元数据的一部分。在某些函数中,您还可以使用行标签作为关键变量、分组变量等等,就像您可以在表或时间表中使用数据变量一样。这些函数是sortrows加入内部联接外延varfun.rowfun,un.使用这些表函数和使用行标签作为关键变量有一些限制。

排序行标签

例如,您可以在其行次数上对其中的一个或多个数据变量或行次数和数据变量一起对其行时的时间表进行排序。

创建一个时间表使用时间表功能。时间表沿其第一维度具有行时间,标记行。行时间是时间表的属性,而不是时间可变变量。

日期= DateTime(2016,7,[10; 10; 11; 11; 10; 10; 11; 11]);x = [1; 1; 1; 1; 2; 2; 2; 2];y = {'一种';'B';'一种';'B';'一种';'B';'一种';'B'};Z = [1, 2, 3, 4, 5, 6, 7, 8);TT =时间表(X, Y, Z,“RowTimes”,日期)
TT =8×3时间表时间XyZ ___________ _ _____ _ 10-Jul-2016 1 {'a'} 1 10-Jul-2016 1 {'b'} 2 11-Jul-2016 1 {'a'} 3 11-Jul-2016 1 {'b'} 4 10-Jul-2016 2 {'a'} 5 10-Jul-2016 2 {'b'} 6 11-Jul-2016 2 {'a'} 7 11-Jul-2016 2 {'b'} 8

重命名第一个维度。默认情况下,时间表的第一个维度的名称是时间.你可以访问properties.dimensionnames.属性重命名维度。

tt.properties.dimensionnames.{1} ='日期';tt.properties.dimensionnames.
ans =.1x2细胞{‘日期’}{}“变量”

作为替代方案,您可以将行时间指定为第一个输入参数时间表,没有指定“RowTimes”.的时间表函数名称行次数,或第一个维度,在第一个输入参数之后,就像它在另一个输入参数后命名的时间表变量一样。

TT =时间表(日期,X, Y, Z)
TT =8×3时间表Date X Y Z ___________ _ _____ _ 10-Jul-2016 1 {'a'} 1 10-Jul-2016 1 {'b'} 2 11-Jul-2016 1 {'a'} 3 11-Jul-2016 1 {'b'} 4 10-Jul-2016 2 {'a'} 5 10-Jul-2016 2 {'b'} 6 11-Jul-2016 2 {'a'} 7 11-Jul-2016 2 {'b'} 8

把时间表按行时间排序。若要按行时间排序,请按名称引用时间表的第一个维度。

sortrows(tt,'日期'
ans =8×3时间表日期X Y Z  ___________ _ _____ _ 自2016年7月10 - 1 {a} 1 10 - 7月- 2016年7月1 {b} 2 10 - 10 - 2016 2 {a} 5 - 7月- 2016年2 {b} 6自2016年7月11 - 1 {a} 3 11 - 7月11 - 2016 1 {b} 4 - 7月- 2016年2 {a} 7 11 - 7月- 2016年2 {b} 8

按数据变量排序Xysortrows排序X首先,然后打开y

sortrows(tt,{“X”“Y”})
ans =8×3时间表Date X Y Z ___________ _ _____ _ 10-Jul-2016 1 {'a'} 1 11-Jul-2016 1 {'a'} 3 10-Jul-2016 1 {'b'} 2 11-Jul-2016 1 {'b'} 4 10-Jul-2016 2 {'a'} 5 11-Jul-2016 2 {'a'} 7 10-Jul-2016 2 {'b'} 6 11-Jul-2016 2 {'b'} 8

按行时间排序和X一起。

sortrows(tt,{'日期'“X”})
ans =8×3时间表日期X Y Z  ___________ _ _____ _ 自2016年7月10 - 1 {a} 1 10 - 7月- 2016年7月1 {b} 2 10 - 10 - 2016 2 {a} 5 - 7月- 2016年2 {b} 6自2016年7月11 - 1 {a} 3 11 - 7月11 - 2016 1 {b} 4 - 7月- 2016年2 {a} 7 11 - 7月- 2016年2 {b} 8

使用行标签作为分组或密钥变量

使用时将行分组使用rowfunvarfun.,un函数,您可以将行标签指定为分组变量。当您使用的时候加入表或时间表加入内部联接,外延函数时,可以指定行标签作为关键变量。

例如,可以使用行名和表变量作为关键变量一起执行两个表的内部连接。内部连接只保留那些与关键变量相匹配的表行。

创建两个患者数据表。表可以沿着第一个维度有行名,标记行,但不是必须有行名。指定病人的姓作为表的行名。添加患者的名字作为表变量。

a =表({'迈克尔';“路易”;'爱丽丝';“迷迭香”;'朱丽叶'},[38, 43岁,45,40;49),......'variablenames', {'名'“年龄”},......'rownames', {'加西亚''约翰逊'“吴”'琼斯''Picard'})
A =5×2表FirstName Age ____________ ___ Garcia {'Michael'} 38 Johnson {'Louis'} 43 Wu {'Alice'} 45 Jones {'Rosemary'} 40 Picard {'Julie'} 49
b =表({'迈克尔';“贝弗利”;'爱丽丝'},......[64; 69; 67],......(119; 163; 133),......(122 80;109 77;117 75),......'variablenames', {'名'“高度”“重量”“血压”},......'rownames', {'加西亚''约翰逊'“吴”})
B =3×4表名字身高体重血压___________ ____________ _____________ Garcia {'Michael'} 64 119 122 80 Johnson {'Beverly'} 69 163 109 77 Wu {'Alice'} 67 133 117 75

如果一个表有行名,那么您可以根据行名在其中建立索引。按行名索引是选择表中的行的一种方便的方法。索引B.通过患者的姓氏来检索有关患者的信息。

B('加西亚',:)
ans =1×4表FirstName身高体重血压  ___________ ______ ______ _____________ 加西亚{“迈克尔”}64 119 122 80

在两个表上执行内部连接。这两个表都使用患者的最后一个名称作为行名称,并将名称包含为表变量。两个表中的一些患者已经匹配姓氏而是不同的名字。要确保持久和名字匹配,请使用行名称和作为关键变量。若要将行名指定为键或分组变量,请使用表的第一个维度的名称。默认情况下,第一个维度的名称为'排'

c = InnerJoin(A,B,'钥匙', {'排''名'})
C =2×5表FirstName年龄身高体重血压  ___________ ___ ______ ______ _____________ 加西亚{“迈克尔”}38 64 119 122 80吴{“爱丽丝”}45 67 133 117 75

如果重命名表的第一个维度,那么您可以通过该名称而不是使用该名称的行名称'排'.执行与上面相同的内连接,但使用不同的名称来引用行名。

的维度名称一种通过访问它properties.dimensionnames.财产。

A.Properties.Dimensionnames.
ans =.1x2细胞{'行'} {'变量'}

使用其更改表的第一维度的名称properties.dimensionnames.财产。然后使用新名称作为键变量。

A.Properties.Dimensionnames.{1} ='姓';A.Properties.Dimensionnames.
ans =.1x2细胞{'lastname'} {'变量'}

执行内部连接一种B.使用作为关键变量。

B.Properties。DimensionNames {1} ='姓';d = Innerjoin(A,B,'钥匙', {'姓''名'})
d =2×5表FirstName年龄身高体重血压  ___________ ___ ______ ______ _____________ 加西亚{“迈克尔”}38 64 119 122 80吴{“爱丽丝”}45 67 133 117 75

表函数和行标签的使用说明

  • 您无法使用堆栈或删除行标签un功能。但是,您可以使用行标签作为分组变量。

  • 您无法使用使用的连接加入内部联接, 要么外延当第一个参数是一个表,第二个参数是一个时间表时调用。但是,当两个参数都是表,都是时间表,或者第一个参数是时间表,第二个参数是表时,可以执行连接。

  • 如果将行标签指定为键变量,则连接操作的输出可以具有行标签。有关来自加入操作的行标签的更多详细信息,请参阅文档'钥匙'“LeftKeys”,'lightneys'参数的加入内部联接,外延功能。

也可以看看

|||||||