Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Machen Sie den Antwortknopf (das rote Dreieck) zu Ihrem Freund. Willkommen zurück zu meiner Serie über die Grundlagen der Skripterstellung JMP . Dies ist der dritte Eintrag in eine Serie Das ist so strukturiert, dass Sie daran arbeiten können. Wenn Sie gerade erst dabei sind, möchten Sie wahrscheinlich einen Blick auf die früheren Einträge der Serie werfen. Hier sind einige Links dazu:
Guck mal; Es wird Ihnen bei dem, was ansteht, helfen.
Alles klar, schnall dich an. Bisher haben wir noch mit keinem Code gearbeitet (es sei denn, Sie zählen den JSL Scripting Index). Das endet heute. Heute verwenden wir das JSL-Skriptfenster. Ich weiß, dass das einigen von Ihnen Angst machen kann. Lasst uns ein paar Mal tief durchatmen und loslegen.
Schreiben Sie nicht um der Skripterstellung willen!
Seien wir mal ehrlich: Codieren ist auf kurze Sicht kein effizienter Prozess. Bei einmaligen Analysen und Grafiken werden Drag-and-Drop-Tools in puncto ROI fast immer die Codierung übertreffen (die Kosten für jemanden, der eine Entwicklungsübung durchführt, sind einfach zu hoch). Es gibt diejenigen, die auf Skripten bestehen, unabhängig davon, ob eine GUI-Lösung schneller ist. Ich weiß nicht warum, und ich gehöre nicht zu ihnen. Ich werde das Codieren in Betracht ziehen, wenn ein Arbeitsablauf so schwierig oder umständlich ist, dass die Verwendung einer grafischen Benutzeroberfläche ein erhebliches Fehlerrisiko mit sich bringt. Ich werde das Codieren auch in Betracht ziehen, wenn ich etwas immer und immer wieder mache, und ich kann die Zeit durch die Effizienz, die ich durch Automatisierung gewinne, rechtfertigen. Das heißt nicht, dass ich nicht programmiere, nur um zu sehen, ob ich etwas tun kann. Oder dass ich nicht eine kompliziertere Art des Codierens wähle, nur um etwas Neues zu lernen. Aber solche Fälle sind eher die Ausnahme als die Regel.
Nun, mit dieser Verallgemeinerung habe ich wahrscheinlich ein paar Leute an der Nase herumgeführt. Das Problem bei dieser Art von pauschalen Aussagen ist, dass sie ziemlich schwarz und weiß sind. Die Wahrheit ist, wie bei allem im Leben, dass es eine Grauzone gibt, in der das Wertversprechen ein Widerspruch zwischen einer Point-and-Click-Lösung und Codierung ist. In dieser Grauzone befinden sich auch die meisten angehenden Programmierer. Sie wissen, dass sie durch die Skripterstellung wahrscheinlich etwas an Effizienz gewinnen können, aber sie wissen einfach nicht, wo sie anfangen sollen, oder sie befürchten, dass der Zeitverlust durch den anfänglichen Lernaufwand zu groß sein wird. Das Schöne am Design von JMP ist, dass es uns Werkzeuge an die Hand gibt, mit denen wir mit der Einführung von JSL in einen Workflow beginnen können, ohne zu viel Effizienz bei der Manipulation von JSL einzubüßen. Und wie alles in JMP beginnt es mit Der JMP-Workflow .
Der JMP-Workflow (Scripting-Edition)
Der JMP-Workflow endet im Allgemeinen damit, dass ein Benutzer zu einem Menü mit rotem Dreieck geht, um eine Frage zu beantworten. Eine weitere Funktion des roten Dreiecksmenüs besteht darin, Benutzern Methoden zum Speichern ihrer Arbeit (Skripts speichern) bereitzustellen.

Es gibt im Wesentlichen drei Möglichkeiten, Skripte zu speichern:
- Zur Datentabelle : Diese Methode speichert die Skripte in der Datentabelle als „Tabellenskripte“.Diese Skripte speichern die zum Generieren eines bestimmten Berichts in JMP verwendete Methode und sind portierbar (dh sie können zwischen Datentabellen mit denselben Spaltennamen kopiert und eingefügt werden).
- Zum Skriptfenster : Diese Methode speichert die zum Reproduzieren eines bestimmten Berichts erforderlichen Informationen in einem Skriptfenster. Dies ist nützlich für mehrstufige Vorgänge oder die Erstellung mehrerer Berichte. Der Inhalt eines Skriptfensters kann auch in ein Tabellenskript umgewandelt werden.
- Zur Zwischenablage : Diese Methode eignet sich zum Verschieben des für einen Bericht benötigten Codes in eine andere JMP-Plattform (z. B. Query Builder, Application Builder usw.) oder zum Generieren von Prototypcode für größere Projekte.
Es stellt sich heraus, dass wirklich effiziente Programmierer diese Optionen des roten Dreiecks während ihrer Programmiersitzungen ausgiebig nutzen. Sie verwenden sie, um ihre Codierung zu beschleunigen (warum Raute-Tasten drücken, wenn es nicht nötig ist?) oder um Plattform-Prototyp-Code zu generieren, der sonst leicht zu vermasseln und schwer zu debuggen wäre. Für Programmieranfänger bieten diese Optionen verschiedene Möglichkeiten, JSL kennenzulernen und zu nutzen und gleichzeitig in die Details der Arbeit damit einzusteigen. Hier wollen wir unser Codierungsabenteuer beginnen.
Skript speichern > In Datentabelle
Wenn Sie zufällig ein JMP-Benutzer im Raum New York oder New Jersey sind: Hallo! Ich habe Ihr Unternehmen wahrscheinlich schon einmal besucht. (Wenn nicht, schicken Sie mir eine PN; wir müssen das beheben.) Und als ich vor Ort war, haben Sie mich wahrscheinlich schon auf diesen Punkt hinweisen hören: Sie MÜSSEN Ihre Arbeit speichern, und mit „Speichern Sie Ihre Arbeit“ meine ich die Verwendung Skript speichern … in Datentabelle Option unter dem Menü mit dem roten Dreieck. Um auf meine ersten Erfahrungen mit der Automatisierung eines Arbeitsablaufs zurückzukommen: So begann ich: indem ich eine Reihe standardisierter Graph Builder-Berichte in einer JMP-Tabelle speicherte, die ich regelmäßig aktualisierte. Ich kann diesen kleinen Tipp gar nicht genug betonen. Es ist, als hätte man Dr. Who's Sonic Screwdrive. Die Möglichkeiten sind endlos.
Schauen wir uns ein kurzes Beispiel an:
- Offen Hilfe > Beispieldatenbibliothek > Big Class Families.jmp
- Öffnen Sie einen Verteilungsdialog: Analysieren > Verteilung
- Tragen Sie Alter, Geschlecht, Größe und Gewicht ein Y, Spalten und klicken Sie OK .

- Wählen Sie im roten Dreiecksmenü „Verteilungen“ die Option aus Skript speichern > In Datentabelle

- Geben Sie ihm einen Namen (oder verwenden Sie einfach die Standardeinstellung). Wenn Sie in diesem Fall die Standardeinstellung verwenden, wird sie in der Datentabelle als angezeigt Verteilung 2 weil es schon eine gibt Verteilung Skript in der Datentabelle.

- Schauen Sie nun noch einmal auf die Datentabelle in der oberen linken Ecke. Ihr Tabellenskript sollte in der Liste mit einem grünen Häkchen daneben angezeigt werden.

Im Kontext dieser Serie kann man sich diese Tabellenskripte als kleine Applets (Minianwendungen) oder Makros vorstellen. Sie sind direkt zwischen Datentabellen portierbar (einfach kopieren und einfügen). vorausgesetzt, die im Skript verwendeten Spaltennamen sind identisch . Sie können auch bearbeitet werden (klicken Sie mit der rechten Maustaste auf eines und wählen Sie es aus). Bearbeiten ). Daher sind sie auch auf Datentabellen portierbar, die nicht dieselben Spaltennamen haben, wenn Sie bereit sind, die Spaltennamen im Skript zu bearbeiten, was keine große Sache ist. Wie das geht, erfahren Sie im nächsten Beitrag. Tabellenskripte können auch zum Aneinanderreihen kleinerer Skripte verwendet werden, um einen größeren Arbeitsablauf zu automatisieren. Auch das behandeln wir im nächsten Beitrag.
Skript speichern > In Zwischenablage
Wir werden den letzten Eintrag im Menü des roten Dreiecks behandeln: Zur Zwischenablage Artikel. Wir werden diesen als nächstes behandeln, da der Eintrag mit dem identisch ist zum Skriptfenster Option, aber viel weniger lehrreich. Das heißt nicht, dass es nicht nützlich ist, sondern nur, dass Sie nicht sehen können, was vor sich geht. Der Zeit halber erfahren Sie hier, was es bewirkt. Es benötigt den Code, der von erstellt wurde Skript speichern … in Datentabelle und legt es in die Zwischenablage, damit Sie es irgendwo in ein anderes Skript einfügen können. Es ist praktisch. Und wenn Ihre Skriptfähigkeiten wachsen, werden Sie herausfinden, wo es für Sie nützlich ist. Im Moment möchte ich auf die interessantere und nützlichere Option zurückgreifen: Speichern in einem Skriptfenster.
Skript speichern > Im Skriptfenster
Der nächste Eintrag in der Skript speichern unter… Im Menü „Rotes Dreieck“ werden wir uns mit dem befassen, was von den dreien, die ich bespreche, wahrscheinlich am lehrreichsten ist. Das Speichern eines Skripts in einem Skriptfenster bewirkt genau das, was es verspricht: Es erstellt ein Skript-Editor-Fenster (wir werden in der nächsten Folge näher auf den Skript-Editor eingehen) und füllt es mit JMP-generiertem JSL, um alles, was darin enthalten war, neu zu erstellen Fenster, in dem Sie gearbeitet haben. Der wichtige Punkt bei diesem Eintrag ist, dass Sie den Code studieren und aus dem lernen können, was JMP generiert hat.
Schauen wir uns noch einmal ein triviales Beispiel mit Big Class an. Fahren Sie fort und klicken Sie auf die grüne Schaltfläche neben Ihrem gespeicherten Skript, um die Analyse erneut auszuführen. Wählen Sie dann im Berichtsfenster aus Skript speichern > Im Skriptfenster aus dem Menü des roten Dreiecks. Sehen Sie sich nun an, was JMP im Skriptfenster geschrieben hat.

JMP hat einen Verteilungsbericht erstellt: Distribution(…);. JMP hat zwei Untergruppen „Nominale Verteilung“ in den Bericht eingefügt: „Nominale Verteilung“ (Spalte (…)) und zwei Untergruppen „Kontinuierliche Verteilung“: „Kontinuierliche Verteilung“ (Spalte (…)). Am Ende des Skripts hat JMP einen unglaublich wichtigen Codeabschnitt eingefügt: das „;“. Es heißt „Glue Operator“ und wir werden in der nächsten Folge ausführlicher darauf eingehen. Im Moment müssen Sie nur wissen, dass es eine Möglichkeit ist, JMP bei der Ausführung des Codes zu signalisieren, dass eine weitere Anweisung kommt. Die Tatsache, dass JMP dies automatisch ans Ende stellt, macht das Leben des unerfahrenen Drehbuchautors viel einfacher.
Der letzte Punkt, der diesen Eintrag so nützlich macht, ist, was passiert, wenn Sie das Skriptfenster geöffnet lassen. Fahren Sie fort und schließen Sie die Distributionsplattform, aber lassen Sie Ihren Skripteditor geöffnet. Erstellen Sie nun mithilfe der geöffneten Datentabelle einen Bericht „Y nach X anpassen“ (unter „Analysieren“), wobei Sie „Höhe“ als X-Variable und „Gewicht“ als Y-Variable verwenden.

Als nächstes wählen Sie aus Skript im Skriptfenster speichern wieder.

Ist Ihnen aufgefallen, dass das Fenster mit einem anderen Eintrag aktualisiert wurde? Dieses Skript erstellt nun die beiden Fenster, mit denen Sie gerade gearbeitet haben, neu, sobald Sie wissen, wie man eines davon ausführt. Apropos …
Ausführen von Skripten
Sie haben also Code in einem Skriptfenster, was nun? Sie möchten wahrscheinlich den von Ihnen erstellten Code ausführen können. Ich meine, Sie könnten es einfach so lassen, um die Leute zu beeindrucken, die an Ihrem Schreibtisch vorbeigehen, aber es ist wahrscheinlich besser, es auszuführen. Es gibt mehrere Möglichkeiten, Code in JMP auszuführen: das Hauptmenü, Tastaturkürzel, die Symbolleisten oben im Skriptfenster, die Eingabetaste oder einfach einen Rechtsklick. Lassen Sie uns die einzelnen Punkte kurz durchgehen.
Das Hauptmenü und Tastaturkürzel
Der Skript ausführen Der Befehl befindet sich unter Windows und MacOS an derselben Stelle. Wenn Sie sich in einem Skriptfenster befinden, gehen Sie nach unten Bearbeiten > Skript ausführen . Der Hotkey dafür ist STRG+R für Fenster und CMD+R für MacOS.
Die Schaltfläche in der Symbolleiste oben im Skriptfenster
Wenn Sie oben im Skriptfenster nachsehen, sollten Sie eine finden Skript ausführen (es sei denn, Sie haben die Symbolleisten ausgeblendet). Unter Windows sieht es aus wie eine kleine grüne Wiedergabetaste, ähnlich denen für Tabellenskripte. Unter MacOS sieht es aus wie ein kleines JSL-Dokument mit einem JMP Man und der grünen Play-Taste.
Mit der Enter-Taste
Beachten Sie hier, dass ich die Schaltfläche im unteren rechten Teil des Nummernblocks einer erweiterten Tastatur meine. Wenn Sie diese Taste drücken, führt JMP die JSL-Zeile aus, in der sich der Cursor befindet. Ich habe dieses häufig verwendet, bevor ich mich mit dem JSL-Debugger vertraut gemacht habe.
Rechtsklick
Wenn Sie Code auswählen und mit der rechten Maustaste klicken, wird ein Kontextmenü mit einem angezeigt Skript ausführen Option nach unten.
Ich empfehle Ihnen, die verschiedenen Formen der Skriptausführung auszuprobieren und diejenige zu finden, die Ihnen am besten gefällt. Ich bin ein Fan des Hotkeys, außer wenn ich mich im Application Builder befinde, wo ich lieber die Optionen der Symbolleiste verwende. Mit der Zeit werden Sie sich wahrscheinlich zu einem oder zwei hingezogen fühlen, die zu Ihren Favoriten werden. Außerdem als Randbemerkung: Alle diese Optionen bewirken leicht unterschiedliche Dinge, je nachdem, ob Sie einen Codeabschnitt ausgewählt haben, sich Ihr Cursor am Ende einer Zeile oder in einer leeren Zeile befindet. Vielleicht möchten Sie auch ein wenig damit experimentieren.
Abschluss für diese Woche
Okay, ob Sie es glauben oder nicht, Sie haben jetzt genug Informationen, um mit JSL wahnsinnig gefährlich zu werden ... natürlich im positiven Sinne. Lassen Sie mich Ihnen zeigen, was ich meine.
Lassen Sie uns das Skript verwenden, das wir heute erstellt haben. Ich werde eine kleine Änderung vornehmen, indem ich ein New Window(); umschließe. Funktion rund um die von JMP erstellten Verteilungs- und Bivariatenfunktionen. Sie können mehr über Neues Fenster(…) erfahren; im Scripting-Index. Beachten Sie, dass der erste Teil von New Window(…); beginnt in Zeile 1 und der letzte Teil ist in Zeile 10! Ich habe meinen Skripteditor so eingerichtet, dass er eine nette kleine Linie zeichnet, die sie verbindet, damit ich sehen kann, wo sie sich befinden (dazu später mehr).

Dann kopieren wir den Text für dieses Skript und kehren zur Datentabelle zurück. Wählen Neues Skript aus dem Menü mit dem roten Dreieck in der obersten linken Ecke der Datentabelle.

Fügen Sie den Skripttext in das Dialogfeld ein, geben Sie ihm einen sinnvollen Namen und klicken Sie OK .

Wenn Sie mitmachen, sollte Ihr Bericht im Skriptbereich der Datentabelle angezeigt werden. Wenn Sie es ausführen, sollten Sie etwa Folgendes erhalten:

Und das ist der kleine Trick, mit dem ich einen zweitägigen Analysemarathon in eine 15-minütige Übung im Ausschneiden und Einfügen verwandelt habe. Ich habe ein wenig Zeit damit verbracht, die Daten in eine JMP-Datentabelle zu übertragen, die ich leicht aktualisieren konnte. Anschließend habe ich alle Diagramme, die ich für diesen Bericht benötigte, mit in ein einziges JSL-Fenster exportiert Skript im Skriptfenster speichern . Ich habe sie in ein neues Fenster eingepackt (so dass sie alle an einem Ort waren) und dieses Skript in ein Tabellenskript in der Datentabelle eingefügt. Habe ich mit JSL gearbeitet? Ja. Habe ich viel Code geschrieben? NEIN. Habe ich meine Effizienz gesteigert? Definitiv.
Da wir nun mit der eigentlichen Codierung beginnen, muss ich diesen letzten Punkt hervorheben. Beim Codieren geht es darum, Ihre Fähigkeiten zu steigern Effizienz :
- Wie effizient Sie Probleme lösen können.
- Wie effizient Sie Berichte erstellen können (damit Sie sich wieder an die Lösung von Problemen machen können).
- Wie effizient Sie mit Ihren Daten arbeiten können.
Der Code, den wir in dieser Serie erstellen werden, ist computergeneriert oder einfach. Und das ist in Ordnung. Es geht um effizient Code nicht sexy Code. Als ich auf dem College war, hatte einer meiner Professoren (ein Musikerkollege) vor seinem Büro ein Zitat an der Wand: Einfache Musik ist nicht besser oder schlechter als komplexe Musik. Das Gleiche gilt für Code. Daran wurde ich vor einiger Zeit von der Person erinnert, die mir das Programmieren beigebracht hat. Also denk daran: Einfacher Code ist nicht besser oder schlechter als komplexer Code. Wichtig ist nur, dass es seinen vorgesehenen Zweck erfüllt und die Effizienz bzw. Produktivität derjenigen steigert, die es nutzen.
Hausaufgaben
In der Übung dieser Woche werden Sie noch einmal auf Ihre Problemstellung zurückblicken. Denken Sie über die von Ihnen erstellte Fehlerliste nach und generieren Sie Code mithilfe der heute behandelten Arbeitsabläufe. Der Code kann der tatsächliche Code sein, den Sie verwenden werden, oder ein Prototyp-Code, von dem Sie glauben, dass Sie ihn ein wenig ändern müssen, um Ihre Problemstellung zu beantworten. Versuchen Sie, mithilfe des roten Dreiecksmenüs so viele Teile zu generieren, wie Sie für nötig halten, und speichern Sie sie als .jsl-Dateien. Wenn Sie nicht weiterkommen oder keine Möglichkeit finden, JMP dazu zu bringen, den benötigten Code zu generieren, bitten Sie um Hilfe, entweder in der Community oder in den Kommentaren hier. Vergessen Sie nicht, die Hilfe zu durchsuchen, und vergessen Sie nicht, dass Sie auch die Community durchsuchen können!
Bis zum nächsten Mal, viel Glück und viel Spaß beim Programmieren!