主要内容

合并数据集的数组

这个示例演示了如何使用加入

加载示例数据。

从第一个工作表导入数据hospitalSmall.xlsx放入数据集数组,然后只保留几个变量。

ds1 =数据集(“XLSFile”fullfile (matlabroot“帮助/工具箱/统计/例子”“hospitalSmall.xlsx”));ds1 = ds1 (:, {“id”“名字”“性”“年龄”})
ds1 =身份证姓名性别年龄“ypl - 320”“史密斯”“m”38“gli - 532”“约翰逊”“m”43“句- 258”的威廉姆斯的“f”38“mij - 579”的琼斯的“f”40 xlk - 030的“棕色”“f”49“tfp - 518”戴维斯的“f”46“lpd - 746”米勒的“f”33岁的ata - 945“威尔逊”“m”40 vnl - 702的“摩尔”“m”28 lqw - 768的“泰勒”“f”31日“qfy - 472”“安德森”“f”45 ujg - 627的“托马斯”“f”42“雪- 826”JACKSON' m' 25 'TRW-072' WHITE' m' 39

数据数组,ds1的,有14个观察值(行)和4个变量(列)。

从工作表导入数据Heights2hospitalSmall.xlsx

ds2 =数据集(“XLSFile”fullfile (matlabroot“帮助/工具箱/统计/例子”“hospitalSmall.xlsx”),“表”“Heights2”
ds2 = id hgt 'LPD-746' 61 'PNI-258' 62 'XUE-826' 71 'ATA-945' 72 'XLK-030' 63

ds2有来自第一个数据集数组的5个人子集的身高测量值,ds1的

只合并观测值的匹配子集。

使用加入要合并两个数据集数组,ds1的ds2,只保留观察结果的子集ds2

JoinSmall =加入(ds2、ds1)
JoinSmall = id hgt name sex age 'LPD-746' 61 'MILLER' f' 33 'PNI-258' 62 'WILLIAMS' f' 38 'XUE-826' 71 'JACKSON' m' 25 'ATA-945' 72 'WILSON' m' 40 'XLK-030' 63 'BROWN' f' 49

JoinSmall,变量id只出现一次。这是因为它是关键变量——连接两个数据集数组之间的观察结果的变量——并且在两个数据集中具有相同的变量名ds1的ds2

在合并中包含不完整的观察结果。

合并ds1的ds2把所有的观察记录在更大的范围内ds1的

joinAll =加入(ds2、ds1、“类型”“rightouter”“mergekeys”,真正的)
joinAll = id hgt姓名性别年龄的ata - 945 72“威尔逊”“m”40 gli - 532的南“约翰逊”“m”43 lpd - 746 61年米勒的“f”33 lqw - 768的南“泰勒”“f”31日mij - 579“NaN”琼斯的“f”40句- 258 62年的威廉姆斯的“f”38“qfy - 472”南“安德森”“f”45的tfp - 518南戴维斯的“f”46“天合- 072”南“白”“m”39 ujg - 627的南“托马斯”“f”42“vnl - 702”南“摩尔”'m' 28 'XLK-030' 63 'BROWN' 'f' 49 'XUE-826' 71 'JACKSON' 'm' 25 'YPL-320' NaN 'SMITH' 'm' 38
每一个观察ds1的没有相应的高度测量ds2具有高度价值。还有,因为没有id价值ds2对于每一个ds1的,您需要使用该选项合并键“MergeKeys”,真的。这合并了关键变量,id

合并具有不同键变量名的数据集数组。

当使用加入,则键变量在要合并的数据集数组中不需要具有相同的名称。从命名的工作表中导入数据Heights3hospitalSmall.xlsx

ds3 =数据集(“XLSFile”fullfile (matlabroot“帮助/工具箱/统计/例子”“hospitalSmall.xlsx”),“表”“Heights3”
ds3 = identifier hgt ' gliw -532' 69 'QFY-472' 62 'MIJ-579' 61 'VNL-702' 68' XLK-030' 63 'LPD-746' 61 'TFP-518' 60 'YPL-320' 71 'ATA-945' 72' LQW-768' 64 'PNI-258' 62 'UJG-627' 61 'XUE-826' 71 'TRW-072' 69

ds3ds1的。该数据集数组具有与ds1的,但它们在变量名之下标识符,而不是id(顺序不同)。

指定关键变量。

可以很容易地更改键变量的变量名ds3通过设置d3.Properties.VarNames或使用Variables编辑器,但执行合并并不需要它。相反,您可以使用以下命令在每个数据集数组中指定键变量的名称LeftKeysRightKeys

joinDiff =加入(ds3, ds1、“LeftKeys”“标识符”“RightKeys”“id”
joinDiff =标识符hgt姓名性别年龄gli - 532 69年约翰逊的“m”43 qfy - 472 62年“安德森”“f”45 ' mij - 579 ' 61 '琼斯的“f”40“vnl - 702”68“摩尔”“m”28 xlk - 030 63年布朗的“f”49 lpd - 746 61年米勒的“f”33 tfp - 518 60戴维斯的“f”46“ypl - 320”71“史密斯”“m”38“ata - 945”72“威尔逊”“m”40 lqw - 768 64年泰勒的“f”31日句- 258 62年的威廉姆斯'f' 38 'UJG-627' 61 'THOMAS' 'f' 42 'XUE-826' 71 'JACKSON' 'm' 25 'TRW-072' 69 'WHITE' 'm' 39

合并的数据集数组,joinDiff,具有与第一个数据集数组输入相同的键变量顺序和名称加入ds3

另请参阅

|

相关的例子

更多关于