使用 JMP > 重塑数据 > 连接数据表 > 连接数据表的示例
发布日期: 09/18/2023

连接数据表的示例

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

按行号连接的示例

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

连接行数不等的表

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

1. 选择帮助 > 样本数据文件夹,然后打开 Species1.jmp 和 Species2.jmp。

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

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

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

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

5. 点击确定。

图 6.21 按行号连接的表 

Joined Tables by Row Number

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

连接具有相同名称的列

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

1. 选择帮助 > 样本数据文件夹,然后打开 Trial1.jmp 和 Trial2.jmp。

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

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

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

5. 点击确定。

图 6.22 原始表和连接表 

Original Tables and the Joined Table

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

仅连接指定列

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

1. 选择帮助 > 样本数据文件夹,然后打开 Trial1.jmp 和 Trial2.jmp。

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

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

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

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

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

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

7. 点击选择。

8. 点击确定。

图 6.23 仅连接指定列 

Joining Only Specified Columns

笛卡尔连接的示例

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

笛卡尔连接的简单示例

1. 选择帮助 > 样本数据文件夹,然后打开 Species1.jmp 和 Species2.jmp。

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

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

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

5. 点击确定。

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

Joining Tables Using Cartesian Join

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

笛卡尔连接的复杂示例

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

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

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

1. 选择帮助 > 样本数据文件夹,然后打开 Oil Amount.jmp、Batch.jmp 和 Popcorn Type.jmp。

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

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

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

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

6. 点击确定。

图 6.25 Oil Amount and Batch 连接表 

Oil Amount and Batch Joined Table

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

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

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

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

10. 点击确定。

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

Oil Amount and Batch Joined with Popcorn Type

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

按匹配列连接的示例

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

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

注意:

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

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

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

使用唯一标识符连接表

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

1. 选择帮助 > 样本数据文件夹,然后打开 Hot Dogs.jmp 和 Hot Dogs2.jmp。

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

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

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

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

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

6. 点击匹配。

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

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

9. 点击“应用”。

图 6.27 按匹配列连接的表 

Joined Table by Matching Columns

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

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

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

1. 选择帮助 > 样本数据文件夹,然后打开 Trial1.jmp 和 Little.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.28 完成的连接窗口 

Completed Join Window

15. 点击确定。

连接表按匹配列排序。请注意,来自 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.29 原始数据表和连接的 Coffee Shop Purchases 数据表 

Original and Joined Coffee Shop Purchases Data Tables

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