主要内容

加入

类:数据集

(不推荐)合并数据集阵列观测

数据集不推荐使用数据类型。要处理异构数据,请使用MATLAB®表格数据类型。看到MATLAB表格文档以获取更多信息。

语法

C =加入(A, B)
C =加入(A、B键)
C =加入(A, B,param1val1param2val2,……)
[C, IB] =加入(…)
C =加入(A, B,类型,类型,…)
C =加入(A, B,类型,类型,“MergeKeys”,真的,…)
[C IA IB] =加入(A, B,类型,类型,…)

描述

C =加入(A, B)创建数据集数组C通过合并来自两个数据集数组的观察一个B加入通过首次查找执行合并关键变量,即,一对数据集变量,一个在一个,另一个在B,有相同的名字。每一个观察B必须在键变量中包含唯一的值组合,并且必须包含从一个加入然后使用这些关键变量来定义观测值之间的多对一对应关系一个B加入用这种对应来复制B并把它们和观测结果结合起来一个创建C

C =加入(A、B键)使用指定的变量执行合并作为两者的关键变量一个B是正整数、正整数向量、字符向量、字符串数组、字符向量单元数组或逻辑向量。

C中包含每个观察的一个观察一个.变量C包括来自的所有变量一个,以及对应于每个变量的一个变量B(除了从B).如果一个B包含名称相同的变量,加入添加后缀“_left”“_right”对应的变量C

C =加入(A, B,param1val1param2val2,……)指定可选参数名称/值对,以控制数据集变量在一个B在合并中使用。参数:

  • “钥匙”-指定两个变量都要作为键使用一个B

  • “LeftKeys”—指定作为关键字使用的变量一个

  • “RightKeys”—指定作为关键字使用的变量B

你可以提供“钥匙”参数,或两者都使用“LeftKeys”“RightKeys”参数。这些参数的值是一个正整数、一个正整数向量、一个字符向量、一个字符串数组、一个字符向量单元数组或一个逻辑向量。“LeftKeys”“RightKeys”必须指定相同数量的关键变量,和加入按指定的顺序对左键和右键进行配对。

  • “LeftVars”—指定从哪个变量一个包括在C.默认情况下,加入包括一个

  • “RightVars”—指定从哪个变量B包括在C.默认情况下,加入包括B除了关键变量。

您可以使用“LeftVars”“RightVars”包括或排除关键变量和数据变量。这些参数的值是一个正整数、一个正整数向量、一个字符向量、一个字符串数组、一个字符向量单元数组或一个逻辑向量。

[C, IB] =加入(…)返回索引向量IB,在那里加入构造C通过横向连接(:, LeftVars)RightVars B (IB)加入也可以执行更复杂的内部和外部连接操作,允许多对多通信一个B,并允许不匹配的观察一个B

C =加入(A, B,类型,类型,…)指定的连接操作类型类型是其中之一“内心”“leftouter”“rightouter”“fullouter”,或“外”是。的同义词“fullouter”).对于内连接,C只包含与在两者中发生的键值组合对应的观察一个B.对于左(或右)外连接,C也包含相应于输入键的观察值一个(或B),与任何在B(或一个).变量C一个(或B)中包含空值。一个完整的外部连接相当于一个左右外部连接。C包含与两者的关键变量相对应的变量一个B,加入对观察结果进行分类C通过键值。

对于内连接和外连接,C包含与两者的关键变量相对应的变量一个B以及所有剩余的变量。加入对结果中的观察结果进行排序C通过键值。

C =加入(A, B,类型,类型,“MergeKeys”,真的,…)包含一个变量C的每个键变量对一个B,而不是包含两个独立的变量。外部连接,加入通过合并来自的键值来创建单个变量一个B,从一个在什么地方存在相应的观测一个,从B否则。设置“MergeKeys”参数真正的方法指定的任何键变量的包含或排除“LeftVars”“RightVars”参数。设置“MergeKeys”参数等于不传入“MergeKeys”参数。

[C IA IB] =加入(A, B,类型,类型,…)返回索引向量IAIB表示中观测值之间的对应关系C一个B.对于内连接,加入构造C通过横向连接LeftVars (IA)RightVars B (IB).对于外部连接,IAIB也可以包含零,表示C这并不符合一个B,分别。

例子

从Fisher的虹膜数据创建一个数据集数组:

numbs = size(meas,1);NameObs = strcat({“突发”},num2str ((1: NumObs) ', ' % - d '));虹膜=数据集({名义(物种),“物种”},…{量,“SL”、“西南”,“PL”、“PW”},…ObsNames, NameObs);

创建一个单独的数据集阵列与二倍体染色体计数的每个物种的虹膜:

sname =名义({“setosa”;“多色的”;“virginica”});CC = dataset({snames,'species'},{[38;108;70],' CC '}

广播数据CC一排排地虹膜使用关键变量物种在每个数据集:

iris2 =加入(虹膜,CC);iris2 ([1 2 51 52 101 102]:) ans =物种SL SW PL PW cc Obs1 setosa 5.1 3.5 1.4 0.2 38 Obs2 setosa 4.9 - 3 Obs51癣7 3.2 4.7 1.4 1.4 - 0.2 108 Obs52杂色的6.4 3.2 4.5 1.5 108 Obs101 virginica 6.3 3.3 2.5 70 Obs102 virginica 5.8 2.7 5.1 1.9 70

创建两个数据集并使用“MergeKeys”国旗:

%创建两个数据集,它们都包含键变量% 'Key1'。这两个数组包含具有共同%值的Key1的观察值,但每个数组还包含另一个数组中不存在Key1值的观察值%。=数据集({“a”“b”“c”“e”“h”}”,[1 2 3 11 17]”,…VarNames,{‘Key1’‘Var1}) b =数据集({' a ' b ' d ' ' e '}”,[4 5 6 7]”,…将a和b与外部连接相结合,它将% observations与公共键值相匹配,但也保留了键值不匹配的% observations。%将键值作为单独的变量保存在结果中。join(a,b,'key','Key1','Type','outer') % join a和b,在结果中将键值合并为单个变量%。coutermerge =加入(a, b,‘钥匙’,‘Key1’,“类型”、“外”,…'MergeKeys',true) % Join a和b,只保留其键值%匹配的观察结果。cin =加入(a, b,‘钥匙’,‘Key1’,“类型”,“内部”,… 'MergeKeys',true) a = Key1 Var1 'a' 1 'b' 2 'c' 3 'e' 11 'h' 17 b = Key1 Var2 'a' 4 'b' 5 'd' 6 'e' 7 couter = Key1_left Var1 Key1_right Var2 'a' 1 'a' 4 'b' 2 'b' 5 'c' 3 '' NaN '' NaN 'd' 6 'e' 11 'e' 7 'h' 17 '' NaN coutermerge = Key1 Var1 Var2 'a' 1 4 'b' 2 5 'c' 3 NaN 'd' NaN 6 'e' 11 7 'h' 17 NaN cinner = Key1 Var1 Var2 'a' 1 4 'b' 2 5 'e' 11 7

另请参阅