JSLで連想配列を作成し、その配列を使用して別の列のエントリに基づいて列にデータを入力する式を使用して、データテーブルに新しい列を作成するとします。
データ テーブルが保存されると、その連想配列がどこかに保持されているように見えますが、どこに保存されているのでしょうか。 データテーブル内のどこか? 後でそれを表示または編集する方法はありますか?
連想配列は、変数がクリアされるか、名前空間が閉じられるか、JMP セッションが閉じられるまで、RAM メモリに保存されます。配列が保存されていると思わせるのは、いくつかの点です。
- データ テーブルを開くと、データ テーブルが保存されたときに存在した数式列の値が表示されます。これを達成するために数式は実行されません。最後の値が列に保存されているようです。ただし、データ テーブルに新しい行を追加しようとすると、数式が強制的に実行され、エラーが表示されます。
- データ テーブルを保存して閉じ、JMP セッションを閉じずに再度開くと、式によって、配列がまだ RAM メモリに残っていることがわかります。したがって、式を実行できます。
連想配列などの項目を必要とする数式を処理する通常の方法は、配列の作成を数式に追加し、数式が最初に実行されるときにのみ実行することです。本当に簡単な例は次のとおりです。
連想配列がこの式で作成された場合。
myArray = associative array(:age << get values);
次に、数式で機能させるには、数式が最初の行を実行しているときにのみこのコードを実行するように指定するだけで、すべての行で使用できるようになります
If( Row() == 1,
myArray = Associative Array( :age << get values )
);
この JSL を数式の最初の項目として使用すると、数式が機能します。