さて、JMP に慣れ始め、データベースからデータ テーブルを抽出、再配置、フォーマットする最初のスクリプトに成功しました。 うまく機能し、時間を節約できます。 このスクリプトは次のコピーを使用して開発したため、 JMP スクリプトへのジャンプ膝の上で私は自然に脚本を理解することに興味を持ちました。 ここで問題が発生します。
さまざまな測定が必要な製造プロセスを考えてみましょう。 データベースには、1 つの列にすべてのテストメソッドがあり、別の列にすべてのテスト結果が含まれています。 必要なものを取得するには、このテーブルを分割する必要があります。 ただし、データベースにあるデータの多くは従来の Excel ファイルからのものであるため、以前の誤ったエントリにより、テスト名を保持する列を再コーディングする必要があります。 その(再)コード部分にアクセスするために、[列] メニューの [再コード] を使用しました。これは、スクリプト内で理解できない唯一の部分です。 (これは通常、非常に基本的なスクリプトです。)
以下に掲載されている例では、大文字と数字は、使用される実際のテスト方法の名前のバリエーションを反映しています。 たとえば、A は 1 つのテスト (pH テストなど)、B は別のテスト (粘度など) です。 A(1)、A(2)、... A(n) はすべて A に再コード化され、次に B(1) に再コード化されます。 B(n) から B など。 さて、ソフトウェアは、変数が一緒に属するこのコード部分からどのように動作するのでしょうか? スクリプトガイドとスクリプトインデックスを確認しましたが、まだ理解できません。 _rcOrig と _rcNow はどういう意味ですか? スクリプト、つまりそれぞれの行の変数は、完全なスクリプトの私のコピーとまったく同じように配置されています。
ご回答ありがとうございます。
dt << Recode Column(
dt:TestName,
{Map Value(
_rcOrig,
{"A(1)", "A(2)",
"A(3)", "A(4)",
"A(5)", "A(6)", "B(1)",
"B(2)", "C(1)", "C(2)",
"C(3)", "C(4)", "D(1)", "D(2)", "E(1)",
"E(2)", "F(1)", "F(2)", "G(1)", "G(2)",
"H(1)", "H(2)", "I(1)", "I(2)",
"I(3)", "I(4)", "J(1)", "J(2)", "K(1)",
"K(2)", "L(1)", "L(2)",
"M(1)", "M(2)", "M(3)",
"M(4)"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
やあ、
常に 1 つの文字である場合は、次のような簡単な数式を作成するとよいでしょう。
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));
提供された JSL にあるテスト値を使用して、データ テーブルに新しい列を作成しました。

次に、[再コード化] ダイアログを開いて、再コード化の変更を加えました。

次に、赤い三角形に移動して選択しました
スクリプト=>スクリプトウィンドウに保存
そして以下はそれが私に与えたものです。
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
dt << Begin Data Update;
col1 = dt << New Column( dt:test );
col1 << Set Name( "test 2" );
dt << Move Selected Columns( {col1}, after( dt:test ) );
dt << Recode Column(
dt:test,
{Map Value(
_rcOrig,
{"A(1)", "A", "A(2)", "A", "A(3)", "A", "A(4)", "A", "A(5)", "A", "A(6)",
"A", "B(1)", "B", "B(2)", "B", "C(1)", "C", "C(2)", "C", "C(3)", "C", "C(4)",
"C", "D(1)", "D", "D(2)", "D", "E(1)", "E", "E(2)", "E", "F(1)", "F", "F(2)",
"F", "G(1)", "G", "G(2)", "G", "H(1)", "H", "H(2)", "H", "I(1)", "I", "I(2)",
"I", "I(3)", "I", "I(4)", "I", "J(1)", "J", "J(2)", "J", "K(1)", "K", "K(2)",
"K", "L(1)", "L", "L(2)", "L", "M(1)", "M", "M(2)", "M", "M(3)", "M", "M(4)",
"M"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
この例では、値と結果のペアごとに値がどのように設定されているかを確認できます。