您好,
我希望你能帮助我。 我对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] )
)
);