使用 JMP > 重塑数据 > 连接数据表 > 连接数据表的示例
发布日期: 11/15/2021

连接数据表的示例

以下各节提供使用连接命令的示例。

按行号连接的示例

按行号连接表可并排连接两个表。新表包含两个表中的所有列,除非您指定仅包含特定列。

连接行数不等的表

若要连接的两个表的行数不等,新表将包含在两个表中找到的行的值。

1. 选择帮助 > 样本数据库,然后打开 Species1.jmpSpecies2.jmp

请注意 Species1.jmp 表包含两行,Species2.jmp 表包含四行。

2. Species1.jmp 表中,选择表 > 连接

3. 与“...”连接的副表框中,选择 Species2

4. 从匹配方式区域中,选择按行号

5. 点击确定

图 6.23 按行号连接的表 

Image shown here

若一个包含两行的表与包含四行的表连接,则新表包含四行。

连接具有相同名称的列

若两个表包含的列名相同,新表中的这些列的名称将显示为“表名中的列名”。例如,假定您要将 Trial1.jmpTrial2.jmp 数据表(如图 6.24 所示)中的八行合并为一个表。您希望合并后的新表包含两个表中的所有列。

1. 选择帮助 > 样本数据库,然后打开 Trial1.jmpTrial2.jmp

2. Trial1.jmp 数据表中,选择表 > 连接

3. 与“...”连接的副表框中,选择 Trial2

4. 从匹配方式菜单中,选择按行号

5. 点击确定

图 6.24 原始表和连接表 

Image shown here

两个原始表中的列名可能相同。输出列名然后按源表名进行限定。例如,新表中的列名显示为表名称的<变量名称>。

仅连接指定列

假定不想在连接表中包括原始数据表中的所有列。

1. 选择帮助 > 样本数据库,然后打开 Trial1.jmpTrial2.jmp

2. Trial1.jmp 数据表中,选择表 > 连接

3. 与“...”连接的副表框中,选择 Trial2

4. 从匹配方式菜单中,选择按行号

5. 点击选择连接表中要包含的列,指定要包括的列的子集。

6. 在“源列”列表中,从 Trial1 列表中选择爆米花产量,然后从 Trial2 列表中选择产量

由于两个表中的爆米花列中存在相同的数据,您只需选择一列。

7. 点击选择

8. 点击确定

图 6.25 仅连接指定列 

Image shown here

笛卡尔连接的示例

执行笛卡尔连接时,JMP 以笛卡尔方式连接两个表:由此创建的新表将包含两个原始表中所有可能的行组合。这将在输出表中创建多种情况,每种列值组合对应一种情况。

笛卡尔连接的简单示例

1. 选择帮助 > 样本数据库,然后打开 Species1.jmpSpecies2.jmp

2. Species1.jmp 表中,选择表 > 连接

3. 与“...”连接的副表框中,选择 Species2

4. 从匹配方式菜单中,选择笛卡尔连接

5. 点击确定

图 6.26 使用“笛卡尔连接”连接表 

Image shown here

Species1.jmp 中的数据与 Species2.jmp 中的数据交叉以生成连接表,其中显示每个集合中的值的所有组合。

笛卡尔连接的复杂示例

在该示例中,使用表 > 连接命令两次:

第一次连接使用笛卡尔选项将 Oil Amount.jmp 表与 Batch.jmp 表合并。

第二次连接将生成的表(笛卡尔油量 + 包型)与 Popcorn Type.jmp 表合并,并生成连接所有表的最终表。

1. 选择帮助 > 样本数据库,然后打开 Oil Amount.jmpBatch.jmpPopcorn Type.jmp

2. Oil Amount.jmp 表中,选择表 > 连接

3. 与“...”连接的副表框中,选择 Batch

4. 从匹配方式菜单中,选择笛卡尔连接

5. 输出表名称下,键入 Oil Amount and Batch

6. 点击确定

图 6.27 Oil Amount and Batch 连接表 

Image shown here

连接表包含 Oil Amount.jmpBatch.jmp 表中的所有列。添加 Popcorn Type.jmp 列:

7. 从您刚创建的 Oil Amount and Batch 表中,选择表 > 连接

8. 与“...”连接的副表框中,选择 Popcorn Type

9. 从匹配方式菜单中,选择笛卡尔连接

10. 点击确定

图 6.28 与 Popcorn Type 连接的 Oil Amount and Batch 

Image shown here

最终表包含三个原始表中的所有列。请记住笛卡尔连接生成的行数是原始表中行数的乘积。

按匹配列连接的示例

当您通过匹配列来连接数据表时,JMP 通过匹配列值来对齐两个表中的行。

警告:若匹配的列未生成唯一行,请小心操作。

注意:

用于匹配的列必须具有相同的数据类型(数字、字符或行状态)。

您可以将数据表连接到其自身,以便从数据表中删除重复的值或行。

您可以使用虚拟连接作为创建新数据表的替代方法。请参见虚拟连接数据表

使用唯一标识符连接表

您有两个关于热狗信息的文件。第二个文件包含大小这一列,该列未包含在第一个文件中。使用“使用匹配列来连接”来组合数据表。

1. 选择帮助 > 样本数据库,然后打开 Hot Dogs.jmpHot Dogs2.jmp

产品名列是数据表中各行的唯一标识符。每个表有 54 个唯一产品名。

2. Hot Dogs 数据表中,选择表 > 连接

3. 在“与‘Hot Dogs’连接的副表”列表中,选择 Hot Dogs2

4. 在“匹配方式”区域中选择按匹配列

5. Hot Dogs Hot Dogs2 列表中,选择产品名称

6. 点击匹配

7. 在“选项”中,选择合并具有相同名称的列。使用合并列时,将自动选择“匹配标志”。

8. 选择窗口左下角的保持对话框打开,以便在连接的数据表不符合预期的情况下轻松返回到“连接”窗口。

9. 点击“应用”。

图 6.29 按匹配列连接的表 

Image shown here

生成的表现在包含 Hot Dogs2 表中所含的大小列。“匹配标志”列指示所有行的数据都来自这两个表。

连接行数和列名均不同的表

假定 Sarah 和 Joe 要做一个爆米花实验。他们要用不同的油量制作不同类型的爆米花(gourmet 和 plain)。他们记录了产出的爆米花的量(产量)。Sarah 在名为 Trial1.jmp 的文件中给出了第一项试验的数据。Joe 在名为 Little.jmp 的文件中给出了第二项试验的数据。您希望将两个表合并为一个表。

1. 选择帮助 > 样本数据库,然后打开 Trial1.jmpLittle.jmp

2. Trial1.jmp 表中,选择表 > 连接

3. 与“...”连接的副表框中,选择 Little

您可以看到有三列(爆米花油量/油包型)在两个表中包含相同的值。将这些列标识为匹配列。此外,由于 Sarah 和 Joe 为油量列指定了不同的名称,您可以向 JMP 表明油量匹配。

4. 取消选择保留主表顺序

连接的表将按照匹配列而非 Trial1.jmp 中的数据顺序进行排序。

5. 在“匹配方式”区域中选择按匹配列

6. Trial1 列表中,选择爆米花油量包型

7. Little 列表中,选择爆米花包型

8. 点击匹配

查看这两个数据表,您可以看到其中具有不同的行数。Trial1.jmp 具有八个实验条件值,Little.jmp 仅具有其中四个实验条件值。Sarah 完成了她的实验,但 Joe 只是部分完成了他的实验。您希望连接表包含 Trial1.jmp 中的所有行,即使 Little.jmp 表中的行中包含缺失值。

9. 为这两个表选中包含不匹配项框。

在连接的表中,您只想有一列对应爆米花、一列对应、一列对应包型。但是,您希望有两个产量列:一个代表 Trial1.jmp产量,另一个代表 Little.jmp产量

10. 选中选择连接表中要包含的列旁边的框。

11. Trial1 列表中选择所有列。

12. 点击选择

13. Little 列表中,选择产量

14. 点击选择

图 6.30 完成的连接窗口 

Image shown here

15. 点击确定

图 6.31 连接的 Trial1.jmp 和 Little.jmp 

Image shown here

连接表按匹配列排序。请注意,来自 Little.jmp 表的产量列(“Little”中的“产量”)具有缺失值,指示没有与 Trial1.jmp 表匹配的值。

将数据表连接到其自身(以删除重复条目)

1. 选择帮助 > 样本数据库,然后打开 Coffee Shop Purchases.jmp

您可以看到有些客户在同一日期饮用了同一种饮料。您想要使用连接合并这些重复行。

2. 选择表 > 连接

3. 与“...”连接的副表框中,选择 Coffee Shop Purchases

4. 在“匹配方式”区域中选择按匹配列

5. 从两个 Coffee Shop Purchases 列表中,选择全部三个列:日期客户饮料

6. 点击匹配

7. 为两个表(主表和副表)同时选择删除重复项框。

8. 输出表名称键入 Coffee Shop Purchases Final

9. 点击确定

图 6.32 原始数据表和连接的 Coffee Shop Purchases 数据表 

Image shown here

需要更多信息?有问题?从 JMP 用户社区得到解答 (community.jmp.com).