特定の条件下での行値の設定こんにちは、
私は JSL を初めて使用しており、特定の列の特定の行の値を変更するスクリプトを作成しようとしています。
私が抱えている一般的な問題は、実際にはそれらのサイトが同じであるにもかかわらず、データが異なる場所からのものとして分類されていることです。 したがって、グラフにすると、必要以上に多くのグループが表示されてしまいます。
これは、目標を達成できると期待していたコードのスニペットです。
for each row(
if( As Column( dtSum:Name( "Originating Fab" )) == "D1C",
As Column( dtSum:Name( "Originating Fab" )) << Set Values( { "D1D" } );
);
);ここで、「dtSum」は要約テーブル、「Originating Fab」はその行がどの場所から来たかを示す列です。
したがって、上記のコードでは、発信元サイトの値を「D1C」から「D1D」に変更したいと考えています。これは、両方とも同じ場所であるためです。
ご協力をいただければ幸いです。
ありがとう、
レイン
自動化とスクリプト作成マスカスタマイゼーション品質およびプロセスエンジニアリングRe: 特定の条件下で行の値を設定する対象の列を右クリックし、「再コード化」を選択します。列内の既存の値を選択し、その値を何に変更するかを指定できます。これが私が話していたインタラクティブな方法です。
Re: 特定の条件下で行の値を設定するやあ、ジム、
素早い返信ありがとうございます。get Rows Where() 関数については初めて知りました。
しかし、これらの解決策はどちらも私には何の役にも立たないようです。
JMP が対話的にスクリプトを生成できることは知っていましたが、このコンテキストでそれを行う方法については十分に理解していません。 (私はこれを主にグラフに使用しました。)
インタラクティブなルートに関するヘルプはありますか?
Re: 特定の条件下で行の値を設定するこれを対話的に実行し、Recode を使用してこれらの変更を行うことを検討してみるとよいでしょう。変更を加えるためのスクリプトを生成することもできます。
しかし、本当にこれを JSL で行う必要がある場合、より効率的な方法は、Get Rows Where() を使用し、ループせずに一度に変更を行うことです。
dtSum:Name( "Originating Fab" )[ dtSum<<GET rows="" where=""></GET>
また、ループ形式を引き続き使用したい場合は、これはコードのより簡潔なバージョンです。
for each row(
if( dtSum:Name( "Originating Fab" ) == "D1C",
dtSum:Name( "Originating Fab" ) ="D1D";
);
);