主要内容

innerjoin

两个表或时间表之间的内部连接

描述

例子

T= innerjoin (TleftTright创建表格或时间表,T,如内连接Tleft而且Tright使用关键变量.在两个输入中名称相同的所有变量都是关键变量。内部连接组合键变量具有匹配值的行。例如,如果Tleft具有命名为Key1而且Var1,Tright有变量Key1而且Var2,然后T = innerjoin (Tleft Tright)使用Key1作为一个关键变量。

左表和右表中关键变量的匹配值的顺序不必相同。内部连接可以在两个表的关键变量之间执行一对多和多对一匹配。也就是说,在左表的关键变量中出现一次的值可以在右表中有多次匹配。类似地,在右表的关键变量中出现一次的值可以在左表中有多次匹配。

只能对表和时间表的某些组合执行内部连接。

  • 如果Tleft那是桌子吗Tright一定是一张桌子。innerjoin返回T作为一张桌子。

  • 如果Tleft那么,有时间表吗Tright既可以是表格,也可以是时间表。innerjoin返回T作为两种投入组合的时间表。

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

T= innerjoin (TleftTright名称,值使用一个或多个指定的附加选项执行内部连接操作名称,值对参数。

例如,您可以指定用作关键变量的变量。

例子

Tileftiright= innerjoin(___也返回索引向量,ileft而且iright中各行之间的对应关系T排在里面Tleft而且Tright分别。您可以将此语法与前面语法中的任何输入参数一起使用。

例子

全部折叠

创建一个表,Tleft

Tleft = table([5;12;23;2;6],...“麦片”“披萨”“鲑鱼”“饼干”“披萨”},...“VariableNames”,{“年龄”“FavoriteFood”})
Tleft =5×2表年龄FavoriteFood  ___ ____________ 12 5{“麦片”}{“披萨”}23{“鲑鱼”}2{‘饼干’}6{'披萨'}

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

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

使用innerjoin函数创建一个新表,T,数据来自表格Tleft而且Tright

T = innerjoin(Tleft,Tright)
T =5×4表年龄FavoriteFood卡路里NutritionGrade  ___ ____________ ________ ______________ 110{“麦片”}{“-”}{‘饼干’}160 {' D '} 140{“披萨”}{B}{“披萨”}140 {B} 23 367{“鲑鱼”}{B}

表格T是根据键变量排序的,FavoriteFood

创建一个表,Tleft

Tleft = table({“一个”“b”“c”“e”“h”}',[1 2 3 11 17]',...“VariableNames”,{“Key1”“Var1”})
Tleft =5×2表Key1 Var1  _____ ____ {' 2 '} 1 {b} {' c '} 3{“e”}11 {' h '} 17

创建一个表,Tright,在变量中使用公共值Key1表之间的Tleft而且Tright,但也包含值为的行Key1不存在于Tleft

Tright = table({“一个”“b”' d '“e”}',[4 5 6 7]',...“VariableNames”,{“Key1”“Var2”})
Tright =4×2表Key1 Var2  _____ ____ {' 5 ' 4 {b}} {' d '} 6{“e”}7

使用innerjoin函数创建一个新表,T,数据来自表格Tleft而且Tright.只保留值在变量中的行Key1匹配。

同样,返回下标向量,ileft而且iright中各行之间的对应关系T排在里面Tleft而且Tright分别。

[T,左,右]= innerjoin(左,右)
T =3×3表Key1 Var1 Var2  _____ ____ ____ {' '} 1 4 {b} 2 5{“e”}11 7
ileft =3×11 2 4
iright =3×11 2 4

表格T按键变量中的值排序,Key1的水平级联Tleft (ileft:)而且Tright (iright Var2)

创建一个表,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,将第二个变量中常见的值作为表的第一个变量Tleft

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

使用innerjoin函数创建一个新表,T,数据来自表格Tleft而且Tright.的第一个变量Tleft第二个变量Tright作为关键变量。

[T,左,右]= innerjoin(左,右,右,左,右,右,左,右,“LeftKeys”, 1“RightKeys”,2)
T =3×4表Var1_Tleft Var2 Var3 Var1_Tright  __________ ____ ____ ___________ 2 9 8 6 3 6 8 1 4 4 3 1
ileft =3×13 4 2
iright =3×11 2 3

表格T仅保留之间匹配的行Tleft而且Tright关于关键变量。

表格T的水平级联Tleft (ileft:)而且Tright (iright Var1)

创建两个时间表,Tleft而且Tright.它们有一些相同的划船时间,但每个都包括其他时间表中没有的划船时间。

Tleft =时间表(秒([1;2;4;6]),[1 2 3 11]')
Tleft =4×1的时间表时间Var1 _____ ____ 1秒1 2秒2 4秒3 6秒11
Tright =时间表(秒([2;4;6;7]),[4 5 6 7]')
Tright =4×1的时间表时间Var1 _____ ____ 2 sec 4 4 sec 5 6 sec 6 7 sec 7

结合Tleft而且Tright使用内部连接。T将行与公共行时间匹配。T不包含来自两个时间表的任何其他行。

T = innerjoin(Tleft,Tright)
T =3×2时间表时间Var1_Tleft Var1_Tright  _____ __________ ___________ 2秒2 4 4秒3 5 6秒11 6

输入参数

全部折叠

左表,指定为表或时间表

右表,指定为表或时间表

名称-值参数

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

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

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

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

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

行标签的向量可以是一个键,单独使用也可以与其他键变量结合使用。有关更多信息,请参见提示部分。

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

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

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

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

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

行标签的向量可以是一个键,单独使用也可以与其他键变量结合使用。有关更多信息,请参见提示部分。

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

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

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

行标签的向量可以是一个键,单独使用也可以与其他键变量结合使用。有关更多信息,请参见提示部分。

例子:“RightKeys”,3中只使用第三个变量Tright作为一个关键变量。

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

你可以使用“LeftVariables”为了从输出中包含或排除关键变量以及非关键变量,T

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

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

你可以使用“RightVariables”为了从输出中包含或排除关键变量以及非关键变量,T

默认情况下,innerjoin包含来自的所有变量Tright除了关键变量。

输出参数

全部折叠

内连接来自Tleft而且Tright,作为表格或时间表归还。输出表或时间表,T中的每对行包含一行Tleft而且Tright它们在关键变量中共享相同的值组合。如果Tleft而且Tright包含同名的变量,innerjoin中对应的变量名添加唯一的后缀T

一般来说,如果有Tleft而且nTright它们在关键变量中都包含相同的值组合T包含m * n这个组合的行数。

T按关键变量中的值排序,并包含的水平连接Tleft (ileft LeftVars)而且Tright (iright RightVars).默认情况下,LeftVars由的所有变量组成Tleft,RightVars的所有非关键变量组成Tright.否则,LefttVars属性指定的变量组成“LeftVariables”名称-值对参数,和RightVars变量是否由“RightVariables”名称-值对参数。

中可以存储其他元数据,如描述、变量单位、变量名和行名T.的属性部分,以获取更多信息表格时间表

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

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

更多关于

全部折叠

关键变量

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

提示

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

    一般来说,innerjoin从输入表复制行标签Tleft到输出表T

    • 如果Tleft没有行标签,那么T没有行标签。

    • 如果Tleft那么有行标签吗innerjoinTleft中创建行标签T

      • 然而,如果两者都Tleft而且Tright是表,但您没有指定输入表的行名作为键,那么innerjoin中未创建行名T

    的行标签不能执行内部连接Tleft作为左键和变量Tright作为右键。的行标签进行转换,以执行内部连接Tleft到一个表变量,并使用新的表变量作为键。

扩展功能

版本历史

在R2013b中引入

另请参阅

||