连接工作周编号以指示从工作周X到Y的相应累计数量总和我有三列的数据表。 第一栏是“工作周”。第二列是“数量”。第三列是“ Cum_Qty”。
在“ Cum_Qty”列中,该值是“ Qty”列中前一行值的持续总和,直到满足=> 500。
如果行数=> 500 in,则值将在“ cum_Qty”中更新。
我需要编写JSL脚本来创建新列('Cum_WW')的帮助,该列将连接工作周编号以指示相应的'Cum_Qty'是从工作周X到工作周Y的总和,以便满足qty => 500。 之后,删除一些行。
有关详情,请参阅下面的附件和说明。
例子:
在工作周2中,“数量”列中的数量是633(> 500),在“ Cum_Qty”中的数量是633(没有先前行值的总和),在“ Cum_WW”中,该数量表示工作周 2 。
在第3个工作周中,数量为185(<500),总和为185(从第3个工作周开始)+ 633(从第2个工作周开始)= 818,此值在“ Cum_Qty”列中更新,在“ Cum_WW”中将表示工作周数 2_3 。
在第4个工作周中,数量为130(<500),其总和为130(第4个工作周)+ 185(第3个工作周)+ 633(第2个工作周)= 948,该值在“çum_Qty”列的“ Cum_WW'将指示工作周 2_4 。
在第5个工作周中,数量为90(<500),其总和为90(从第5个工作周开始)+ 130(从第4个工作周开始)+ 185(从第3个工作周开始)+ 633(从第2个工作周开始)= 1038,此值在“ Cum_WW”中的“ Cum_Qty”列将指示工作周 2_5 。
等等......
然后,删除“ Cum_WW”中的行 2 , 2_3 , 2_4 并维护“ Cum_WW”中的数据行 2_5 …。等等…。
谢谢你的帮助。
脚本编写回复:连接工作周编号以指示从工作周X到Y的相应累计数量总和这是一个脚本,该脚本遵循可使用交互式JMP解决此问题的步骤。 能够在JMP中有效创建脚本需要对JMP可以交互进行的操作有充分的了解。 好的脚本利用了交互式JMP的内置功能。 通过阅读JMP文档,发现JMP和使用JMP,可以找到学习JMP内容的良好起点。 这些可以在JMP文档库中找到
帮助=> JMP文档库
这是一个可以满足您需求的脚本。 假定它从2列Qty和Cum_WW开始。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Cum_Qty",
formula(
If( Row() == 1, x = 0 );
If( :Qty > 500,
x = :Qty,
x = x + :Qty
);
x;
)
);
// Turn formula columns into static values
dt:Cum_Qty << delete formula;
dt << New Column( "WW", formula( Word( 1, :Cum_WW, "_" ) ) );
// Create a new column that is a numeric version of the Cum_WW
dt << New Column( "Cum_WW_Num",
formula(
Sum(
Num( Word( 1, :Cum_WW, "_" ) ),
Num( Word( 2, :Cum_WW, "_" ) ) * .1
)
)
);
dt << select where( :WW == "" );
dt << delete rows;
dt << New Column( "select",
Formula(
If( :Cum_WW_Num != Col Max( :Cum_WW_Num, :WW ),
Row State( Row() ) = Selected State( 1 )
)
)
);
dt << delete columns( {"WW", "Cum_WW_Num", "select"} );
dt << delete rows;
请研究脚本,以便您了解用于解决方案的各种项目。 如果您对其中任何一个有疑问,请回复此帖子,我将帮助您补充理解。