使用 Table\Join 和 Table\Update 匹配两个表失败附件为表格 A、B 和 C。
表 A 中有 Peter 的 30 条记录。
表 B 中有 Jane 记录的 8,790 条条目。
表C是手动生成的正确合并表。
我想匹配 Peter 和 Jane 的条目,并创建一个仅包含表 A 中“地点”的子集,从而得到表 C。
我使用了 Table\Join 和 Table\Update,但结果并不准确。
例如,如果您使用 Location=-216,161,则连接表的输出应如下所示……
地点:彼得简
-216,161 RDL_膜 RDL_膜
-216,161 RDL_膜。
-216,161 碎片 碎片
自动化和脚本编写回复:使用 Table\Join 和 Table\Update 匹配两个表失败连接/更新操作运行正常,因为存在多个匹配项。您很可能需要添加一些值删除操作来移除那些“多余”的值。

回复:使用 Table\Join 和 Table\Update 匹配两个表失败你好,Jarmo,
你的输出结果不正确。对于 Location= -216,161,Peter 有 3 个输出,Jane 有 2 个输出。正确的结果应该如下所示。请问如何编写 JSL 代码来实现自动化?
地点:彼得简
-216,161 RDL_膜 RDL_膜
-216,161 RDL_膜。
-216,161 碎片 碎片
回复:使用 Table\Join 和 Table\Update 匹配两个表失败对于连接/更新操作来说,这样的输出是正确的,但可能不是您想要的结果。
1. 在表 B 中创建 Jane 的重复列
2. 使用该新列(在我的例子中是第 3 列)作为匹配列进行更新

3. 选择“位置”和“简”列,依次选择“行”>“行选择”>“删除重复项”。
4. 仅选择 Jane 列(单击列标题(有时需要按住 Alt 键)),然后删除这些值(按 Delete 键)。


回复:使用 Table\Join 和 Table\Update 匹配两个表失败我打算用jsl实现上述功能。另外,数据集会不断变化,有时Jane的列会出现重复值,这没关系。
回复:使用 Table\Join 和 Table\Update 匹配两个表失败我可能会尝试将其作为工作流程来实现。当然,如果您会编写 JSL 脚本,也可以直接使用 JSL。
回复:使用 Table\Join 和 Table\Update 匹配两个表失败您是否考虑过先更改数据格式?根据我的经验,有时将数据重新格式化为更便于分析的格式,比使用复杂的脚本来调整分析以适应数据格式要容易得多。对于特定位置,多行数据(长格式)在很多情况下都适用,但如果存在重复观测值(即多行完全相同的数据),就会变得棘手。JMP 并不总是知道如何处理这些重复数据,因此在连接时可能无法给出您预期的结果。
例如:您是否考虑将格式从“竖排”改为“宽排”?这种格式在半导体检测/测试数据中很常见,尤其是在存在多个误差类别或良率等级时:
查看更多...
Local( {obj},
obj = Data Table( "Table A" ) << Tabulate(
Add Table(
Column Table(
Grouping Columns( :Peter ),
Add Aggregate Statistics( :Peter )
),
Row Table( Grouping Columns( :Location ) )
)
);
obj << Make Into Data Table;
obj << Close Window;
);
最终得到如下所示的表格:

对于两个操作员来说,采用这种格式合并表格会容易得多。
您还可以考虑使用多重响应建模类型。例如:
查看更多...
dt=Data Table( "Table A" ) << Split(
Split By( :Peter ),
Split( :Peter ),
Group( :Location ),
Output Table( "Split of Table A by Peter" ),
Sort by Column Property
);
// New formula column: Concatenate[BL_Twin,Debris,Good_FS,Probemarks,RDL_Membrane,RDL_SpotsDark]
dt <<
New Formula Column(
Operation( Category( "Character" ), "Concatenate with Comma" ),
Columns(
:BL_Twin, :Debris, :Good_FS, :Probemarks, :RDL_Membrane, :RDL_SpotsDark
)
) << Run Formulas;
dt:"Concatenate[BL_Twin,Debris,Good_FS,Probemarks,RDL_Membrane,RDL_SpotsDark]"n <<
Set Modeling Type( "Multiple Response" );
看起来是这样的:
