我可能不会以正确的方式提出这个问题。我有一个JMP表需要与来自Excel电子表格的值匹配
我的JMP表的一个示例如下(还有其他列,但它们不适用):
| 容器 | 尺寸 | 测量值 | 请求卷 |
| 杯子 | 大 | 3.2 | |
| 碗 | 小 | 4.1 | |
| 桶 | 介质 | 7.9 | |
然后有一个我想要匹配的主表(excel电子表格):
| 容器 | 尺寸 | 请求卷 |
| 杯子 | 小 | 1 |
| 杯子 | 介质 | 2 |
| 杯子 | 大 | 3 |
| 碗 | 小 | 4 |
| 碗 | 介质 | 五 |
| 碗 | 大 | 6 |
| 桶 | 小 | 7 |
| 桶 | 介质 | 8 |
| 桶 | 大 | 9 |
我想用“主表”来填充请求卷列匹配前两列容器和尺寸。 有没有可以做到这一点的JSL功能?
只需让JMP打开excel工作表,然后在容器和大小匹配的情况下使用join。
我将使用update添加请求的vol值。 您需要在数据集中没有该列的情况下开始。
// Create tables
dtc = New Table( "Container_tbl", Add Rows( 3 ),
New Column( "Container", Character, "Nominal",
Set Values( {"Cup", "Bowl", "Bucket"} ) ),
New Column( "Size", Character( 16 ), "Nominal",
Set Values( {"Large", "Small", "Medium"} ) ),
New Column( "Measured Vol", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [3.2, 4.1, 7.9] ) ),
);
dtv = New Table( "Volume", Add Rows( 9 ),
New Column( "Container", Character, "Nominal",
Set Values( {"Cup", "Cup", "Cup", "Bowl", "Bowl", "Bowl", "Bucket", "Bucket",
"Bucket"} ) ),
New Column( "Size", Character( 16 ), "Nominal",
Set Values( {"Small", "Medium", "Large", "Small", "Medium", "Large", "Small",
"Medium", "Large"} ) ),
New Column( "Requested Vol", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9] ) )
);
// Add requested volume
dtc << Update(
With( dtv ),
Match Columns( :Container = :Container, :Size = :Size ),
Add Columns from Update table( :Requested Vol )
);