主要内容

加入

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

描述

例子

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

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

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

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

  • 如果Tleft那是时刻表吗加入返回T作为一个时间表。

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

例子

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

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

例子

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

例子

全部折叠

创建一个表格,Tleft

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

创建一个表格,Tright,有一个与Tleft

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

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

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

创建一个表格,Tleft

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

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

右=表({“麦片”“饼干”“披萨”“鲑鱼”“蛋糕”},...(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

右=表([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,包含来自表格的数据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

left = 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进行一对一的通信。

右=表([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,但顺序不同。

右=表([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
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]';左=时间表(时间(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”];左=时间表(秒(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 =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,…,的家

例子:“钥匙”,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中介绍