加入

通过使用关键变量行合并两个表或时间表

描述

例子

T=加入(Tleft,Tright)结合表或时间表TleftTright运用关键变量。有两个表中相同名称的所有变量是关键变量。一个表连接右表中追加行,其中的关键变量匹配左表的关键变量的值。例如,如果Tleft有变量命名键1VAR1Tright有变数键1VAR2,然后T =加入(Tleft Tright)使用键1作为一个关键变量。

左右表中关键变量的匹配值不一定要按照相同的顺序。的关键变量Tright必须包含?的关键变量中的所有值Tleft。每个值都必须在关键变量只出现一次Tright,但在关键变量出现多次Tleft

输入可以是表、时间表或其中之一。

  • 如果Tleft是一个表,然后加入返回T为表。

  • 如果Tleft是一个时间表,然后加入返回T作为一个时间表。

的行标签的向量TleftTright可能是关键变量。行标签是一个表的行名称或时间表的行倍。

例子

T=加入(Tleft,Tright,名称,值)加入由一个或多个指定的其他选项的表或时间表名称,值对参数。

例如,您可以指定为关键变量要使用的变量。

例子

(T,iright] =加入(___)还返回一个索引向量iright使每个元素iright标识的行Tright它对应于这一行T。您可以将此语法与前面语法的任何输入参数一起使用。

例子

全部折叠

创建一个表,Tleft

Tleft =表({贾尼斯的,“乔纳斯”,“哈维尔”,“杰瑞”,“朱莉”}”,[1,2;1;2;1],...'VariableNames'{“员工”“部门”})
Tleft =5×2表员工部门__________ __________{‘贾尼斯}1{“乔纳斯”}2{“哈维尔”}1{“杰瑞”}2{“朱莉”}1

创建一个表,Tright,其中有一个共同的变量Tleft

Tright =表([1 2]',{'玛丽'“蒙娜丽莎”}”,...'VariableNames'{“部门”“经理”})
Tright =2×2表部门经理__________ ________ 1{“玛丽”}2{“蒙娜丽莎”}

创建一个新表,T从表包含数据TleftTright。使用加入函数可重复和追加经理数据表Tright到表中的数据Tleft,根据关键变量,

T =加入(Tleft Tright)
T =5×3表员工部门经理__________ __________ ________{‘贾尼斯}1{“玛丽”}{“乔纳斯”}2{“蒙娜丽莎”}{“哈维尔”}1{“玛丽”}{“杰瑞”}2{“蒙娜丽莎”}{“朱莉”}1{“玛丽”}

创建一个表,Tleft

Tleft =表([5;12;23;2,6],...{'谷类';“披萨”;“鲑鱼”;“饼干”;“披萨”},...'VariableNames'{'年龄',“FavoriteFood”},...“RowNames”{“艾米”,“博比”,“冬青”,“哈利”,“莎莉”})
Tleft =5×2表年龄FavoriteFood ___ ____________艾米5 { '谷'}博比12 { '比萨'}霍利23 { '三文鱼'}哈里2 { '饼干'}萨利6 { '比萨'}

创建一个表,Tright,只有一个变量是相同的Tleft

({Tright =表'谷类';“饼干”;“披萨”;“鲑鱼”;“蛋糕”},...(110;160;140;367;243),...{“B”;' D ';“B -”;'一种';“C -”},...'VariableNames'{“FavoriteFood”,“卡路里”,“NutritionGrade”})
Tright =5×3表FavoriteFood卡路里NutritionGrade{“麦片”}110 _______ ________ * * * {B}{‘饼干’}160 {' D '}{“披萨”}140{的B -}{“鲑鱼”}367 {A}{‘蛋糕’}243 {' C - '}

创建一个新表,T,使用来自表的数据TleftTright。共同的变量,FavoriteFood的关键变量加入函数。

T =加入(Tleft Tright)
T =5×4表年龄FavoriteFood卡路里NutritionGrade ___ ____________ ________ ______________艾米5 { '谷物'} 110 { 'B'}波比12 { '比萨饼'} 140 { 'B-'}冬青23 { '鲑'} 367 { 'A'} 2哈利{ '曲奇'} 160 { 'd'}萨利6 { '比萨饼'} 140 { 'B-'}

表格T不包括表的最后一行信息Tright关于“蛋糕”因为表中没有对应的条目Tleft

创建一个表,Tleft

Tleft =表([10;4;2;3;7]、[5;4、9、6;1],[10;3、8、8;4))
Tleft =5×3表VAR1 VAR2 VAR3 ____ ____ ____ 10 5 10 4 4 3 2 9 8 3 6 8 7 1 4

创建一个表,Tright,给VAR2的表Tright内容与VAR2从表Tleft

Tright =表([6;1;1、6、8],[5;4、9、6;1))
Tright =5×2表Var1 Var2 ____ ____ 6 5 1 4 1 9 6 6 8 1

创建一个新表,T从表包含数据TleftTright。使用VAR2在表中TleftTright的关键变量加入函数。

T =加入(Tleft Tright,“钥匙”,“Var2”)
T =5×4表3 . Var1_Tleft Var2 Var3 Var1_Tright 10 5 10 6 4 4 3 1 2 9 8 1 3 6 6 6 7 1 4 8

加入为非键变量添加唯一后缀,VAR1,以将数据与表区分开TleftTright

用表中的数据创建一个新表TleftTright。如果有任何非关键变量在两个表中具有相同的名称,只保留从表复印件Tleft

创建一个表,Tleft

Tleft =表([10;4;2;3;7]、[5;4、9、6;1))
Tleft =5×2表Var1 Var2 ____ ____ 10 5 4 4 2 9 3 6 7 1

创建一个表,Tright,给VAR2的表Tright内容与VAR2从表Tleft

Tright =表([6; 1; 1; 6; 8],[5; 4; 9; 6; 1],[10; 3; 8; 8; 4])
Tright =5×3表Var1 Var2 Var3 ____上6 5 10 1 4 3 1 9 8 6 6 8 8 1 4

创建一个新表,T,使用来自表的数据TleftTright。使用VAR2的关键变量加入功能,并只保留的副本VAR1从表Tleft。输出表T不包含VAR1数据表Tright

T =加入(Tleft Tright,“钥匙”,“Var2”,“KeepOneCopy”,“Var1”)
T =5×3表VAR1 VAR2 VAR3 ____ ____ ____ 10 5 10 4 4 3 2 9 8 3 6 8 7 1 4

创建一个表,Tleft

Tleft =表([“米”;“米”;“F”;“F”;“F”]、[38,43岁,38;40;49),...'VariableNames'{“性别”'年龄'},...“RowNames”{“史密斯”“约翰逊””威廉姆斯“琼斯”“棕色”})
Tleft =5×2表44 . c)【句意】史密斯先生38岁,约翰逊先生43岁,威廉姆斯先生38岁,琼斯先生40岁,布朗先生49岁

创建一个表,Tright,这样的行Tleft和行Tright有一对一的对应关系。

Tright =表([64;69;67;71;64),...(119;163;133;176;131),...[122 80;109 77;117 75;124 93;125 83],...'VariableNames'{“高度”'重量'“血压”},...“RowNames”{“棕色”“约翰逊”“琼斯”“史密斯””威廉姆斯})
Tright =5×3表身高,体重,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压

创建一个新表,T,使用来自表的数据TleftTright。使用行名称的向量作为关键变量。(表的行名称的向量的名称为“行”,如Tleft.Properties.DimensionNames {1}。)

T =加入(Tleft Tright,“钥匙”,“行”)
T =5×5表性别年龄身高体重血压______ ___交_________________史密斯约翰逊38 71 176 124 93 69 43 163 109 77威廉姆斯F 38 64 131 125 83琼斯布朗40 67 133 117 75 F 49 64 119 122 80

的行T处于相同的顺序Tleft

创建一个表,Tleft

Tleft =表([10;4;2;3;7]、[5;4、9、6;1],[10;3、8、8;4))
Tleft =5×3表VAR1 VAR2 VAR3 ____ ____ ____ 10 5 10 4 4 3 2 9 8 3 6 8 7 1 4

创建一个表,Tright,给VAR2的表Tright内容与VAR1从表Tleft,但顺序不同。

Tright =表([6;1;1、6、8],[2、3、4、7、10])
Tright =5×2表Var1 Var2 ____ ____ 6 2 1 3 4 6 7 8 10

创建一个新表,T从表包含数据TleftTright。使用VAR1从表TleftVAR2从表Tright的关键变量加入函数。

[T,iright] =加入(Tleft,Tright,'LeftKeys',1“RightKeys”,2)
T =5×4表3 . Var1_Tleft Var2 Var3 Var1_Tright 10 5 10 8 4 4 3 1 2 9 8 6 3 6 8 1 7 1 4 6
iright =5×15 3 1 2 4

T是在水平并置TleftTright (iright, 1)

创建两个具有相同行时间但不同变量的时间表。

流量=[0.8 0.9 0.1 0.7 0.9]’;噪声=[0 1 1.5 2 2.3]’;Tleft =时间表(小时(1:5),交通、噪音)
Tleft =5×2时间表1小时0.8 0 2小时0.9 1 3小时0.1 1.5 4小时0.7 2 5小时0.9
距离=[0.88 0.86 0.91 0.9 0.86]’;Tright =时间表(时间(1:5),距离)
Tright =5×1的时间表时间距离为1小时0.88 2小时0.86 3小时0.91 4小时0.9 5小时0.86

合并时间表。加入使用排次为关键变量。

T =加入(Tleft Tright)
T =5×3时间表1小时0.8 0 0.88 2小时0.91 0.86 3小时0.1 1.5 0.91 4小时0.7 2 0.9 5小时0.9 2.3 0.86

创建一个时间表和一张桌子。

测量= [0.13 0.22 0.31 0.42 0.53 0.57 0.67 0.81 0.90 1.00]';设备= ['一种';“B”;'一种';“B”;'一种';“B”;'一种';“B”;'一种';“B”];Tleft =时间表(秒(1:10),测量,设备)
Tleft =10×2时间表时间测量装置可以测量1秒0.13秒、2秒0.22秒、3秒0.31秒、4秒0.42秒、5秒0.53秒、6秒0.57秒、7秒0.67秒、8秒0.81秒、9秒0.9秒、10秒1秒
设备= ['一种';“B”];精度= [0.023,0.037];Tright =表(设备、准确性)
Tright =2×2表设备精度要求为0.023 B 0.037

合并的时间表和桌子。设备是关键变量,因为两者都是TleftTright有一个同名的变量。T是一个时间表。

T =加入(Tleft Tright)
T =10×3的时间表时间测量装置的精度______ ____________ ______ ________ 1秒0.13 0.023 2秒0.22乙0.037 3秒0.31阿0.023 4秒0.42乙0.037 5秒0.53 0.023 6秒0.57乙0.037 7秒0.67 0.023 8秒0.81乙0.037 9秒0.9甲0.023 10秒1个乙0.037

输入参数

全部折叠

左表,指定为表或时间表。对于所有的关键变量,每行Tleft必须完全一排匹配Tright

右表,指定为表或时间表。对于所有的关键变量,每行Tright必须完全一排匹配Tleft

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和是对应的值。的名字必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“钥匙”,2使用在第二可变Tleft和第二可变Tright作为关键变量。

要用作键的变量,指定为逗号分隔的对“钥匙”和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

你不能使用“钥匙”用名称 - 值对参数'LeftKeys'“RightKeys”名称-值对参数。

来自输入表或时间表的行标签向量可以是键,也可以是与其他关键变量组合的键。行标签是表的行名称或时间表的行时间。若要使用此向量作为键,请将其指定为“行”(为一个表的行的名称),作为行倍时间表矢量的名称,或作为值T.Properties.DimensionNames {1},在那里T是桌子还是时间表。

为了向后兼容,还可以指定的值“钥匙”作为“RowNames”TleftTright是具有行名称的表。但是,最佳实践是指定的值“钥匙”作为行名的向量的名称。

例子:“钥匙”,[1 3]使用来自第一和第三变量TleftTright作为关键变量。

例子:“钥匙”,{' X ', ' Y '}使用以下变量XYTleftTright作为关键变量。

例子:“钥匙”,“行”使用的行名称的向量TleftTright作为关键变量,如果两个TleftTright是具有行名称的表。

要用作键的变量Tleft,指定为逗号分隔的对,由'LeftKeys'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

你必须使用'LeftKeys'在用连词名称 - 值对参数“RightKeys”名称-值对的论点。'LeftKeys'“RightKeys”两者都必须指定相同数量的关键变量。加入对键值进行配对TleftTright根据他们的顺序。

来自输入表或时间表的行标签向量可以是键,也可以是与其他关键变量组合的键。行标签是表的行名称或时间表的行时间。若要使用此向量作为键,请将其指定为“行”(为一个表的行的名称),作为行倍时间表矢量的名称,或作为值T.Properties.DimensionNames {1},在那里T是桌子还是时间表。

例子:“LeftKeys”, 1只使用第一个变量inTleft作为一个关键变量。

要用作键的变量Tright,指定为逗号分隔的对,由“RightKeys”和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

你必须使用“RightKeys”在用连词名称 - 值对参数'LeftKeys'名称-值对的论点。'LeftKeys'“RightKeys”两者都必须指定相同数量的关键变量。加入对键值进行配对TleftTright根据他们的顺序。

来自输入表或时间表的行标签向量可以是键,也可以是与其他关键变量组合的键。行标签是表的行名称或时间表的行时间。若要使用此向量作为键,请将其指定为“行”(为一个表的行的名称),作为行倍时间表矢量的名称,或作为值T.Properties.DimensionNames {1},在那里T是桌子还是时间表。

例子:“RightKeys”, 3仅使用在所述第三可变Tright作为一个关键变量。

从变量Tleft包括在T,指定为逗号分隔的对,由'LeftVariables'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

您可以使用'LeftVariables'包含或排除关键变量以及非关键变量T。但是,你不能包括来自行名称或行时间Tleft,因为它们不是变量。

默认情况下,加入包含来自Tleft

从变量Tright包括在T,指定为逗号分隔的对,由“RightVariables”和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

您可以使用“RightVariables”包含或排除关键变量以及非关键变量T。但是,你不能包括来自行名称或行时间Tright,因为它们不是变量。

默认情况下,加入包含来自Tright除了关键变量。

变量的加入仅保留来自。的副本Tleft,指定为逗号分隔的对,由“KeepOneCopy”和字符向量,特征向量,或者字符串数组,指定的变量名的单元阵列。

关键变量出现一次T,但如果出现具有相同名称的非键变量TleftTright,然后加入保留两份副本T默认情况下。使用“KeepOneCopy”名称 - 值对只保留从复制Tleft

例子:KeepOneCopy, Var2只保留副本Tleft非键变量的VAR2

输出参数

全部折叠

合并后的数据TleftTright,以表格或时间表的形式返回。桌上,T中每一行包含一行Tleft,以同样的顺序出现。

加入创建T通过横向连接Tleft (:, LeftVars)Tright (iright RightVars)。默认情况下,LeftVars是所有的变量TleftRightVars是否所有的非关键变量都来自Tright。除此以外,LeftVars方法指定的变量'LeftVariables'名称 - 值对的参数,和RightVars方法指定的变量“RightVariables”名称-值对的论点。

如果TleftTright包含同名的非键变量,加入增加了一个独特的后缀以在相应的变量名T,除非您指定“KeepOneCopy”名称-值对的论点。

如果Tleft是一个表,然后T也是一张桌子。如果Tleft是一个时间表Tright那么,不是一张时间表就是一张桌子T是一个时间表。

您可以存储额外的元数据T,例如描述、变量单元、变量名称和行名称。有关更多信息,请参见属性部分要么时间表

索引Tright,返回为列向量。中的每个元素iright标识的行Tright对应于在输出表中或时间表该行,T

更多关于

全部折叠

关键变量

变量,用于匹配和组合输入表之间的数据TleftTright

键值

的键变量中的值Tleft要么Tright

算法

加入函数首先查找一个或多个关键变量。然后,加入使用关键变量查找输入表中的行Tright每一行匹配输入表Tleft,并将这些行组合在输出表中创建一个行T

  • 如果键值之间存在一对一的映射TleftTright,然后加入整理数据Tright并追加到表Tleft

  • 如果键值之间存在多对一映射TleftTright,然后加入排序并重复数据Tright追加到表之前Tleft

  • 的关键变量中是否有数据Tright不映射到一个关键值Tleft,然后加入不包括在输出表中的数据,T

扩展功能

介绍了在R2013b