Angenommen, ich erstelle in JSL ein assoziatives Array und erstelle dann eine neue Spalte in einer Datentabelle mit einer Formel, die dieses Array verwendet, um die Spalte basierend auf Einträgen in einer anderen Spalte zu füllen.
Wenn die Datentabelle gespeichert wird, scheint sie das assoziative Array irgendwo festzuhalten – wo wird es gespeichert? Irgendwo in der Datentabelle? Gibt es eine Möglichkeit, es später anzuzeigen oder zu bearbeiten?
Das assoziative Array wird im RAM-Speicher gespeichert, bis die Variable gelöscht oder der Namespace, in dem sie sich befindet, geschlossen wird oder die JMP-Sitzung geschlossen wird.Was Sie möglicherweise sehen, lässt Sie vermuten, dass das Array gespeichert wird, und zwar aus mehreren Gründen.
- Wenn Sie die Datentabelle öffnen, werden die Werte in der Formelspalte angezeigt, die beim Speichern der Datentabelle vorhanden waren.Um dies zu erreichen, wird die Formel nicht ausgeführt, es scheint, dass die letzten Werte mit der Spalte gespeichert werden.Wenn Sie jedoch versuchen, der Datentabelle eine neue Zeile hinzuzufügen, wodurch die Ausführung der Formel erzwungen wird, wird ein Fehler angezeigt.
- Wenn Sie die Datentabelle speichern und schließen und sie dann erneut öffnen, ohne die JMP-Sitzung zu schließen, stellt die Formel möglicherweise fest, dass das Array noch im RAM-Speicher verbleibt.Somit kann die Formel ausgeführt werden.
Normalerweise gehe ich mit Formeln um, die Elemente wie ein assoziatives Array benötigen, indem ich die Erstellung des Arrays in die Formel einfüge und es nur ausführe, wenn die Formel zum ersten Mal ausgeführt wird.Ein wirklich einfaches Beispiel wäre:
Wenn das assoziative Array mit dieser Formel erstellt wird.
myArray = associative array(:age << get values);
Damit es dann in einer Formel funktioniert, geben Sie einfach an, dass dieser Code nur dann ausgeführt wird, wenn die Formel die erste Zeile ausführt, sodass er für alle Zeilen verfügbar ist
If( Row() == 1,
myArray = Associative Array( :age << get values )
);
Mit dieser JSL als erstem Element in Ihrer Formel funktioniert die Formel.