列の仕様制限に基づいて列の値を変更する値を360度フロップするのが好きなフェーズテストがあります。 テーブルの列データを調べて平均を取り、それをLSL / USLと比較できるスクリプトが欲しいのですが。 平均の符号が仕様制限の反対である場合は、その値に360を追加します。
テスターがデータを処理する方法が原因で、包括的If(:test <0、t1 =:column + 360; t1;)を実行できません。
サンプルテーブルを添付しましたが、最後の2列が私の問題です。
前もって感謝します
データ表スクリプティングRe:列の仕様制限に基づいて列の値を変更するこの小さなスクリプトがあなたが望むものを与えるかどうかを確認してください
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dt, colList[i] ) << get property( "spec limits" );
If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
If( !(specs["LSL"] <= Col Mean( Column( dt, colList[i] ) ) <= specs["USL"]),
For Each Row( As Column( dt, colList[i] ) = -1 * As Column( dt, colList[i] ) )
)
);
);
Re:列の仕様制限に基づいて列の値を変更するネルソンさん、ありがとうございました。
スクリプトを少し変更する必要がありました。 乗算を加算に変更し、平均を中央値に変更しました。 元の投稿をしたとき、私は壊滅的な失敗を説明しませんでした。 列40と41の列平均値は、LSLとUSLの間にありませんでした。
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dt, colList[i] ) << get property( "spec limits" );
If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
If( !(specs["LSL"] <= Col Median( Column( dt, colList[i] ) ) <= specs["USL"]),
For Each Row( As Column( dt, colList[i] ) = 360 + As Column( dt, colList[i] ) )
)
);
);