OK、それで私は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;指定した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;
この例では、値と結果のペアごとに値がどのように設定されているかを確認できます。
こんにちは、
常に1文字の場合は、次のような簡単な数式を作成することをお勧めします。
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));