主要内容

加入

使用关键变量按行组合两个表或时间表

描述

例子

T=加入(Tlefttr结合表格或时间表Tlefttr使用关键变量.两个表中具有相同名称的所有变量都是关键变量。表连接从右表追加行,其中其关键变量与左表的关键变量值相匹配。例如,如果Tleft有变量命名Key1Var1,tr有变量Key1Var2,然后T =加入(Tleft Tright)使用Key1作为关键变量。

左右表中关键变量的匹配值不必以相同的顺序排列。的关键变量tr必须包含关键变量中的所有值Tleft.的关键变量中,每个值只能出现一次tr,但在关键变量中可能发生多次Tleft

输入可以是表格、时间表,也可以是两者之一。

  • 如果Tleft那么,是一张桌子吗加入返回T作为一个表。

  • 如果Tleft那么,有时间表吗加入返回T作为一个时间表。

行标号的向量Tlefttr可以是关键变量。行标签是表的行名或时间表的行时间。

例子

T=加入(Tlefttr名称,值使用一个或多个指定的附加选项连接表或时间表名称,值对论点。

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

例子

TiRight.) =加入(___也返回一个索引向量iRight.这样的每个元素iRight.确定tr它对应于这一行T.您可以使用此语法与先前语法的任何输入参数。

例子

全部折叠

创建一个表,Tleft

({Tleft =表'janice''乔纳斯''javier'“杰瑞”'朱丽叶'}”,[1,2;1;2;1],...“VariableNames”, {“员工”'部'})
Tleft =5×2表员工部门__________ __________ {'Janice'} 2 {'JONAS'} 1 {'JERRY'} 2 {'JULIE'} 1

创建一个表,tr,有一个共同的变量Tleft

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

创建一个新表,T,包含表中的数据Tlefttr.使用加入重复和附加的功能经理数据表tr到表中的数据Tleft,基于关键变量,部门

T =加入(Tleft Tright)
T =5×3表员工部门经理__________ __________________________________________________'mary'} 2 {'JONAS'} 2 {'MONA'} 1 {'玛丽'} 1 {'MARY'} {'JERRY'} 2 {'MONA'}{'julie'} 1 {'mary'}

创建一个表,Tleft

Tleft =表([5;12;23;2,6],...“麦片”'比萨''三文鱼'“饼干”'比萨'},...“VariableNames”, {“年龄”“FavoriteFood”},...'rownames', {“艾米”“鲍比”“冬青”'哈利'“莎莉”})
Tleft =5×2表年龄最喜欢的食品___ ____________艾米5{'麦片'}博比12{'披萨'}Holly 23{'鲑鱼'}哈里2{'饼干'}萨利6{'披萨'}

创建一个表,tr,有一个变量共同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,使用表中的数据Tlefttr.共同的变量,FavoriteFood,用作关键变量加入函数。

T =加入(Tleft Tright)
T =5×4表年龄FavoriteFood卡路里NutritionGrade  ___ ____________ ________ ______________ 艾米110{“麦片”}{B} 140年博比12日{“披萨”}{的B -}冬青23{“鲑鱼”}367 {A}哈利160{‘饼干’}{' D '}莎莉140{“披萨”}{' B - '}

桌子T不包括来自表格最后一行的信息tr关于“蛋糕”因为表中没有相应的条目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

创建一个表,tr,给予Var2表格tr内容与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,包含表中的数据Tlefttr.使用Var2在表格中Tlefttr的键变量加入函数。

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

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

使用来自表的数据创建一个新表Tlefttr.如果两个表中有同名的非键变量,只保留表中的副本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

创建一个表,tr,给予Var2表格tr内容与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,使用表中的数据Tlefttr.使用Var2的键变量加入功能,只保留副本Var1从表Tleft.输出表T不包含Var1数据表tr

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 =表'M''M''F''F''F']、[38,43岁,38;40;49),...“VariableNames”, {'性别'“年龄”},...'rownames', {“史密斯”“约翰逊”'威廉姆斯'“琼斯”'棕色的'})
Tleft =5×2表性别年龄______ ___史密斯M 38约翰逊M 43威廉姆斯F 38琼斯F 40布朗F 49

创建一个表,tr,这样的行Tleft一排排的tr有一对一的对应。

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表身高体重血压____________ _____________ Brown 64 119 122 80 Johnson 69 163 109 77 Jones 67 133 117 75 Smith 71 176 124 93 Williams 64 131 125 83

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

T =加入(Tleft Tright,“钥匙”“行”
T =5×5表性别年龄高度重量血压______ ____ __________________________史密斯M 38 71 176 124 93 johers f 38 64 131 125 83 jone f 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

创建一个表,tr,给予Var2表格tr内容与Var1从表Tleft,但以不同的顺序。

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

创建一个新表,T,包含表中的数据Tlefttr.使用Var1从表TleftVar2从表tr作为关键变量加入函数。

[T, iright] =加入(Tleft Tright,“LeftKeys”,1,'lightneys'2)
T =5×4表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 . 1 .詹妮弗?劳伦斯

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 HR 0.9 1 3 HR 0.1 1.5 4 HR 0.7 2 5 HR 0.9 2.3
距离= [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时间表时间测量装置______ _________________秒0.13 a 2秒0.22 b 3秒0.31 a 4秒0.42 b 5秒0.53 a 6秒0.57 b 7秒0.67 a 8秒0.81 b 9 sec 0.9 a 10 sec 1 b
设备= [“一个”'B'];精度= [0.023; 0.037];Tright =表(设备,准确性)
Tright =.2×2表设备精度______ ________ A 0.023 B 0.037

合并时间表和表格。设备是关键变量,因为都是Tlefttr有一个名称的变量。T是一个时间表。

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

输入参数

全部折叠

左表,指定为表或时间表。对于所有关键变量,每一行Tleft必须精确匹配一行tr

右表,指定为表或时间表。对于所有关键变量,每一行tr必须精确匹配一行Tleft

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'钥匙',2中使用第二个变量Tleft第二个变量tr作为关键变量。

作为键的变量指定为逗号分隔的配对“钥匙”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

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

来自输入表或时间表的行标签向量可以是密钥,单独或与其他关键变量结合使用。行标签是表的行名称或时间表的行时间。将此矢量用作键,将其指定为“行”(用于表的行名),作为行时间的时间表向量的名称,或作为T.Properties.DimensionNames {1}, 在哪里T是表还是时间表。

为了向后兼容,还可以指定的值“钥匙”作为'rownames'什么时候Tlefttr是带有行名的表。但是,最佳实践是指定的值“钥匙”作为行名向量的名称。

例子:'keys',[1 3]使用的第一个和第三个变量Tlefttr作为关键变量。

例子:“钥匙”,{' X ', ' Y '}使用命名的变量XYTlefttr作为关键变量。

例子:'钥匙','行'使用行名称的向量Tlefttr作为关键变量,如果两者都是Tlefttr是带有行名的表。

变量用作键Tleft,指定为逗号分隔的对,由“LeftKeys”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你必须使用“LeftKeys”名称-值对参数与'lightneys'名称-值对的论点。“LeftKeys”'lightneys'两者必须指定相同数量的关键变量。加入对中的键值Tlefttr根据他们的订单。

来自输入表或时间表的行标签向量可以是密钥,单独或与其他关键变量结合使用。行标签是表的行名称或时间表的行时间。将此矢量用作键,将其指定为“行”(用于表的行名),作为行时间的时间表向量的名称,或作为T.Properties.DimensionNames {1}, 在哪里T是表还是时间表。

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

变量用作键tr,指定为逗号分隔的对,由'lightneys'和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你必须使用'lightneys'名称-值对参数与“LeftKeys”名称-值对的论点。“LeftKeys”'lightneys'两者必须指定相同数量的关键变量。加入对中的键值Tlefttr根据他们的订单。

来自输入表或时间表的行标签向量可以是密钥,单独或与其他关键变量结合使用。行标签是表的行名称或时间表的行时间。将此矢量用作键,将其指定为“行”(用于表的行名),作为行时间的时间表向量的名称,或作为T.Properties.DimensionNames {1}, 在哪里T是表还是时间表。

例子:“RightKeys”,3中的第三个变量tr作为关键变量。

变量Tleft包括在T,指定为逗号分隔的对,由“LeftVariables”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

您可以使用“LeftVariables”从中包含或排除关键变量和非关键变量T.但是,不能包含来自的行名或行时间Tleft,因为它们不是变量。

默认情况下,加入包括所有变量Tleft

变量tr包括在T,指定为逗号分隔的对,由'rightvariables'和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

您可以使用'rightvariables'从中包含或排除关键变量和非关键变量T.但是,不能包含来自的行名或行时间tr,因为它们不是变量。

默认情况下,加入包括所有变量tr除了关键变量。

变量的加入只保留来自Tleft,指定为逗号分隔的对,由“KeepOneCopy”以及指定变量名的字符向量、字符向量单元格数组或字符串数组。

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

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

输出参数

全部折叠

合并后的数据Tlefttr,作为一张桌子或时刻表返回。桌上,T中的每一行包含一行Tleft,以同样的顺序出现。

加入创造T通过横向连接Tleft (:, LeftVars)Tright (iright RightVars).默认情况下,LeftVars所有的变量都是Tleft,Rightvars.是不是所有的非键变量都来自tr.否则,LeftVars包括由此指定的变量组成“LeftVariables”名称-值对参数,和Rightvars.包括由此指定的变量组成'rightvariables'名称-值对的论点。

如果Tlefttr包含同名的非键变量,加入中的对应变量名添加唯一后缀T,除非指定“KeepOneCopy”名称-值对的论点。

如果Tleft那么,是一张桌子吗T也是一张表。如果Tleft是一个时间表tr那么,是时刻表还是桌子T是一个时间表。

您可以存储其他元数据T,例如描述,可变单元,变量名和行名称。有关更多信息,请参阅属性部分表格时间表

索引tr,作为列向量返回。的每个元素iRight.确定tr对应于输出表或时间表中的那一行,T

更多关于

全部折叠

关键变量

可变用于匹配并组合输入表之间的数据Tlefttr

键值

在一个关键变量中的值Tlefttr

算法

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

  • 如果键值之间存在一对一的映射Tlefttr,然后加入对数据进行排序tr并将其添加到table中Tleft

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

  • 如果键变量中有数据tr没有映射到中的键值Tleft,然后加入不包括输出表中的数据,T

扩展能力

另请参阅

||

介绍了R2013b