你好,
希望您能帮助我。我对 JSL 还很陌生。我遇到以下问题:
我有一张这样的桌子:
要素数据 USL
编号1 规格A
编号2 规格A
编号3 规格A
B号4 规格B
B号5规格B
B号6 规格B
应该使用数据过滤器选择特征。然后,数据应该显示在控制图中,特别是针对某个特征。同时,图表中当然还应该显示每个特征的规格限值。
我如何将其放入脚本中?我只能在图表中显示具有一个特征的规格限制的数据。如果我在过滤器中选择另一个特征,则将保留第一个规格限制。
解决方案可能很简单,但我无法想出办法。
感谢您的帮助!
我确定Jim可以帮助编写脚本,但是我不得不问你为什么要使用规范。控制图上的限制? 规格极限是从过程中的实际可变性中独立得出(或确定的)。 令人困惑的控制限制和规格。限制将使人们更加难以理解过程中发生的事情。 如果您使用的是Shewhart型图表,则控制图旨在了解子组内部差异(范围图)的一致性/稳定性,然后将内部值与中间值进行比较(X条形图)。 您正在绘制平均值,通常是规格。与个人有关,而不是平均数。 眼镜。旨在确定形式,装配和功能的限制。 如果您想获得变异性的估计值(Rbar / d2)并创建分布,则可以添加规格。到分发。
大多数时候,如果您希望在JMP中有规范限制,我建议拆分数据并使用列属性。 还有一个原因为什么您必须使用数据过滤器(如果使用拆分数据,则将使用列切换器)?
看看下面的脚本,
它创建一个表,里面是一个可以执行您想要的操作的脚本。
它将特征分成几列并设置 USL。
我和@jthi的想法一样,在不同的列中拥有不同范围(或规格)的数据会更容易。
New Table( "test-split",
Add Rows( 9 ),
New Script(
"__split_usl",
cdt = Current Data Table();
Summarize( cdt, spec_lst = by( :Feature ), usl_lst = Mean( :USL ) );
sdt = cdt << Data Table( "test-split" ) <<
Split(
Split By( :Feature ),
Split( :data ),
Remaining Columns( Drop All ),
Sort by Column Property,
Output table( "Split Table with USL" )
);
For( i = 1, i <= N Items( spec_lst ), i++,
Eval(
Eval Expr(
Column( sdt, spec_lst[i] ) <<
Set Property(
"Spec Limits",
{USL( Expr( usl_lst[i] ) ), Show Limits( 1 )}
)
)
)
);
),
New Column( "Feature",
Character,
"Nominal",
Set Values( {"A", "A", "A", "B", "B", "B", "C", "C", "C"} )
),
New Column( "data",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9] )
),
New Column( "USL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [3, 3, 3, 6, 6, 6, 9, 9, 9] )
)
);