主要内容

加入

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

描述

例子

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

输出T包含变量Key1、Var1和Var2,并将来自Tleft的所有行与来自Tright的所有行组合在一起,其中Key1在Tleft中具有匹配的值。

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

输入可以是表格、时间表,也可以是其中之一。

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

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

的行标签的向量Tleft而且Tright可能是关键变量。行标签是表的行名,或时间表的行时间。

例子

T=加入(TleftTright名称,值将表或时间表与一个或多个指定的其他选项连接起来名称,值对参数。

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

例子

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

例子

全部折叠

创建一个表,Tleft

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

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

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

创建一个新表,T,包含表中的数据Tleft而且Tright.使用加入函数来重复和追加经理表中数据Tright到表中的数据Tleft,根据关键变量,部门

T = join(左,右)
T =5×3表员工的部门经理  __________ __________ ________ {' 珍妮丝'}1{“玛丽”}{“乔纳斯”}2{“蒙娜丽莎”}{“哈维尔”}1{“玛丽”}{“杰瑞”}2{“蒙娜丽莎”}{“朱莉”}1{“玛丽”}

创建一个表,Tleft

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

创建一个表,Tright的一个变量Tleft

Tright = table({“麦片”“饼干”“披萨”“鲑鱼”“蛋糕”},...(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,数据来自表格Tleft而且Tright.共同的变量,FavoriteFood属性用作键变量加入函数。

T = join(左,右)
T =5×4表年龄FavoriteFood卡路里NutritionGrade  ___ ____________ ________ ______________ 艾米110{“麦片”}{B} 140年博比12日{“披萨”}{的B -}冬青23{“鲑鱼”}367 {A}哈利160{‘饼干’}{' D '}莎莉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 = table([6;1;1;6;8],[5;4;9;6;1])
Tright =5×2表Var1 Var2 ____ ____ 6 5 1 4 1 9 6 6 8

创建一个新表,T,包含表中的数据Tleft而且Tright.使用Var2在表中Tleft而且Tright的关键变量加入函数。

T = join(左,右,右,“钥匙”“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 7 1 4 8

加入为非关键变量添加唯一的后缀,Var1,以区分数据与表Tleft而且Tright

用表中的数据创建一个新表Tleft而且Tright.如果两个表中有相同名称的非键变量,则只保留表的副本Tleft

创建一个表,Tleft

Tleft = table([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,数据来自表格Tleft而且Tright.使用Var2的关键变量加入功能,只保留副本Var1从表Tleft.输出表T不包含Var1表中数据Tright

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

创建一个表,Tright,这样的行Tleft一排排的Tright进行一对一的通信。

Tright = table([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表身高体重血压____________ _____________布朗64 119 122 80约翰逊69 163 109 77琼斯67 133 117 75史密斯71 176 124 93威廉姆斯64 131 125 83

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

T = join(左,右,右,“钥匙”“行”
T =5×5表性别年龄身高体重血压_________ ____________ _____________史密斯M 38 71 176 124 93约翰逊M 43 69 163 109 77威廉姆斯F 38 64 131 125 83琼斯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

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

Tright = table([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,包含表中的数据Tleft而且Tright.使用Var1从表TleftVar2从表Tright的关键变量加入函数。

[T, right] = join(左,右,右,“LeftKeys”, 1“RightKeys”, 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 6
iright =5×15 3 1 2 4

T是水平串联的吗Tleft而且Tright (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 2.3 .
距离= [0.88 0.86 0.91 0.9 0.86]';右=时间表(小时(1:5)',距离)
Tright =5×1的时间表时间距离____ ________ 1小时0.88 2小时0.86 3小时0.91 4小时0.9 5小时0.86

合并时间表。加入使用行时间作为关键变量。

T = join(左,右)
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 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秒0.9 A 10秒1 B
设备= [“一个”“B”];精度= [0.023;0.037];Tright =表(设备,准确度)
Tright =2×2表设备精度______ ________ A 0.023 B 0.037

合并时间表和表格。设备关键变量是因为两者吗Tleft而且Tright使用该名称创建一个变量。T是一个时间表。

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

输入参数

全部折叠

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

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

用作键的变量,指定为逗号分隔的对,由“钥匙”一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元格数组,模式标量,或者逻辑向量。

您不能使用“钥匙”参数的名称-值对“LeftKeys”而且“RightKeys”名称-值对参数。

输入表或时间表中的行标签向量可以是一个键,单独使用也可以与其他键变量结合使用。行标签是表的行名或时间表的行时间。若要使用此向量作为键,请将其指定为“行”(对于表的行名),作为行时间的时间表向量的名称,或作为的值T.Properties.DimensionNames {1},在那里T是表格或时间表。

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

例子:“钥匙”,[1 3]使用的第一个和第三个变量Tleft而且Tright作为关键变量。

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

例子:“钥匙”,“行”的行名的向量Tleft而且Tright作为关键变量,如果两者都是Tleft而且Tright是具有行名的表。

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

你必须使用“LeftKeys”参数的名称-值对“RightKeys”名称-值对参数。“LeftKeys”而且“RightKeys”两者必须指定相同数量的关键变量。加入对键值Tleft而且Tright根据它们的顺序。

输入表或时间表中的行标签向量可以是一个键,单独使用也可以与其他键变量结合使用。行标签是表的行名或时间表的行时间。若要使用此向量作为键,请将其指定为“行”(对于表的行名),作为行时间的时间表向量的名称,或作为的值T.Properties.DimensionNames {1},在那里T是表格或时间表。

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

用作键的变量Tright,指定为逗号分隔的对,由“RightKeys”一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元格数组,模式标量,或者逻辑向量。

你必须使用“RightKeys”参数的名称-值对“LeftKeys”名称-值对参数。“LeftKeys”而且“RightKeys”两者必须指定相同数量的关键变量。加入对键值Tleft而且Tright根据它们的顺序。

输入表或时间表中的行标签向量可以是一个键,单独使用也可以与其他键变量结合使用。行标签是表的行名或时间表的行时间。若要使用此向量作为键,请将其指定为“行”(对于表的行名),作为行时间的时间表向量的名称,或作为的值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中出现相同名称的非关键变量Tleft而且Tright,然后加入将两个副本保留在T默认情况下。使用“KeepOneCopy”只保留其副本的名称-值对Tleft

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

输出参数

全部折叠

合并数据Tleft而且Tright,作为表格或时间表归还。桌上,T,中每一行包含一行Tleft,以相同的顺序出现。

加入创建T通过水平连接Tleft (:, LeftVars)而且Tright (iright RightVars).默认情况下,LeftVars所有的变量都是Tleft,RightVars是不是所有的非关键变量都来自Tright.否则,LeftVars属性指定的变量组成“LeftVariables”名称-值对参数,和RightVars属性指定的变量组成“RightVariables”名称-值对参数。

如果Tleft而且Tright包含同名的非关键变量,加入中对应的变量名添加唯一的后缀T,除非指定“KeepOneCopy”名称-值对参数。

如果Tleft那是桌子吗T也是一个表。如果Tleft是一个时间表Tright那么是时间表还是表格呢T是一个时间表。

您可以将额外的元数据存储在T,例如描述、变量单位、变量名和行名。的属性部分,以获取更多信息表格时间表

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

更多关于

全部折叠

关键变量

用于在输入表之间匹配和组合数据的变量Tleft而且Tright

键值

的关键变量中的值TleftTright

算法

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

  • 中键值之间是否存在一一对应关系Tleft而且Tright,然后加入对数据进行排序Tright并将其追加到表中Tleft

  • 中键值之间是否存在多对一映射Tleft而且Tright,然后加入中的数据进行排序和重复Tright在将其追加到表之前Tleft

  • 如果有数据中的关键变量为Tright中的键值Tleft,然后加入在输出表中不包括该数据,T

扩展功能

版本历史

在R2013b中引入