This new capability has me breaking out my thesaurus, scrambling for new superlatives.This new capability has me breaking out my thesaurus, scrambling for new superlatives.This new capability has me breaking out my thesaurus, scrambling for new superlatives.This new capability has me breaking out my thesaurus, scrambling for new superlatives.Diese neue Funktion bringt mich dazu, meinen Thesaurus herauszuholen und nach neuen Superlativen zu suchen. So ja, so viel dazu, dass die Serie fertig ist …
Normalerweise , wenn ich eine Serie wie diese schreibe, schreibe ich die ganze Sache – von Anfang bis Ende – bevor ich anfange, etwas zu veröffentlichen. Normalerweise, Ich möchte meine Leser nicht im Stich lassen, während ich den nächsten Eintrag schreibe. Normalerweise, Ich versuche, den Stress zu vermeiden, der mit dem Schreiben unter einer Deadline verbunden ist. Leider ist an diesem Eintrag nichts Normales. Dieser Eintrag wird geschrieben, während die anderen Einträge veröffentlicht werden. Normalerweise würde ich so etwas nicht versuchen, aber die Informationen, die ich hier weitergeben werde, sind nicht nur wichtig für die Diskussion, sie verändern auch völlig die Art und Weise, wie ich dieses Thema in Zukunft angehen werde. Zur Auffrischung hier die Links zu den anderen Einträgen:
- Das Erste, was ich gerne wüsste, als ich mit dem Schreiben von Skripten begann: Es gibt verschiedene Arten von Skripten
- Das Zweite, was ich gerne wüsste, als ich mit der Skripterstellung begann: Hilfe bekommen
- Das Dritte, was ich gerne gewusst hätte, als ich mit der Skripterstellung begonnen habe: Der Antwortknopf ist dein Freund
- Das vierte, was ich gerne wüsste, als ich mit dem Schreiben von Skripten begann: Was zu tun ist, wenn etwas schief geht
- Das fünfte, was ich gerne wüsste, als ich mit dem Schreiben von Skripten begann: Wie man Dinge aneinanderreiht
- Die (andere) fünfte Sache, die ich gerne wüsste, als ich mit der Skripterstellung begann: Wie man Dinge verpackt
Und jetzt wollen wir fast alles, was ich Ihnen in den letzten Wochen gerade erzählt habe, auf den Prüfstand stellen.
Es gibt einen Kreislauf zum Wie JMP gibt Arbeit frei. Normalerweise beginnt das Produktmanagement-Team erst etwa zwei bis drei Monate vor dem Veröffentlichungsdatum mit der Diskussion der neuen Version mit der Öffentlichkeit. Sie können sich meinen Schock vorstellen, als ich grünes Licht erhielt, über diese neue Funktion zu schreiben – volle sechs Monate vor der geplanten Veröffentlichung von JMP 16.
Als ich an einer Besprechung teilnahm, bei der die Entwickler den JMP-Mitarbeitern diese neue Funktion vorführten, teilte ich meine Begeisterung über diese Funktion und meinen Wunsch, sie den Kunden zu zeigen. Stellen Sie sich meine Überraschung vor, als ich später am Tag gebeten wurde, einen Artikel darüber zu schreiben. Was ist also diese magische Eigenschaft, die mein Herz höher schlagen lässt? Was bringt mich dazu, meinen Thesaurus auszupacken und nach neuen Superlativen zu suchen? Welche neue Funktion wird die Art und Weise, wie ich Menschen in die Welt der JMP-Skripterstellung einführe, völlig verändern? Nun ja ... und bleiben Sie hier bei mir ... es ist tatsächlich so das Protokoll .
Eine Vorschau auf das Kommende
Mit JMP 16 wird ein neues Protokoll eingeführt, das derzeit als „ Erweitertes Protokoll . Aber das ist ein bisschen so, als würde man sagen, dass man mit einem Smartphone telefonieren kann (Sie erinnern sich doch, dass sie das tun, oder?). Das erweiterte Protokoll zeichnet einen Großteil Ihrer Aktivitäten auf, wenn Sie mit JMP interagieren, und (hier ist der großartige Teil) generiert per Mausklick JSL dafür ! Lassen Sie das für eine Sekunde auf sich wirken.
Dies geht weit über Quellskripts und die Optionen zum Speichern von Skripts mit dem roten Dreieck hinaus. Sie versuchen nicht, den Ozean zum Kochen zu bringen, daher werden einige Dinge nicht in der ersten Veröffentlichung erfasst; Datenimport und Datentabellenbearbeitung sind die Hauptziele von JMP 16. Aber es deckt von Anfang an einen großen Bereich ab. Lassen Sie mich Ihnen zeigen, wozu dieses Ding bereits in der Lage ist (noch sechs Monate Entwicklungszeit).
Aktivieren des erweiterten Protokolls
Das Wichtigste zuerst: Das Aktivieren des erweiterten Protokolls ist so einfach wie das Aufrufen der Einstellungen in JMP (unter JMP > Präferenz für MacOS; Datei > Einstellungen für Windows) und Ändern des Dropdown-Menüs „Protokollstil“ in „Erweitert“. Klicken OK und schon geht es los zu den Rennen! (Beachten Sie, dass der Screenshot unten aus einer frühen Version stammt und das Protokoll jetzt über einen eigenen Menüpunkt am Ende der Liste verfügt.)
Öffnen Sie nun das Protokoll ( Fenster > Protokoll für MacOS; Ansicht > Protokoll für Windows). Sie werden etwas sehen, das etwas anders aussieht, als Sie es gewohnt sind. Ich habe meine im Screenshot entfernt, nur damit Sie die verschiedenen Regionen sehen können. Im oberen Teil werden Aktionen aufgezeichnet, worauf ich gleich noch eingehen werde. Im unteren Teil wird die von JMP generierte JSL angezeigt.

Wie das in unsere Geschichte passt
Ich habe alles in ein JMP-Projekt gepackt, nur um alles organisiert zu halten. Wenn das erweiterte Protokoll in ein Projekt eingefügt wird, wird es automatisch unten platziert und in eine Parallelkonfiguration verschoben (erweitertes Protokoll links, JSL-Ausgabe rechts).

Da es sich hier nicht um eine detaillierte Diskussion darüber handeln soll, wie ich die Dinge gemacht habe, werde ich nur ein paar Schritte durchgehen und auf einige Dinge hinweisen. Aber ich werde das gleiche Beispiel verwenden, das wir damals verwendet haben mein dritter Beitrag . Wenn Sie mitgemacht haben, werfen Sie einen Blick zurück und vergleichen Sie, wie einfach das jetzt ist.
Lassen Sie uns zunächst einige Daten in JMP übertragen. Ich habe Big Class Families.jmp geöffnet. Der Bereich „Erweitertes Protokoll“ enthält einen Eintrag, der anzeigt, dass es sich bei der Aktion um einen Benutzerklick handelte (unter „Typ“), was er bewirkt hat, woher die Aktion in JMP kam (unter „Ursprung“) und was passiert ist. Es hat auch einen schönen Zeitstempel. Schauen Sie sich nun den JSL-Bereich an. Es gibt einen Open(…)-Befehl (richtig kommentiert!) für Sie! Kein Durchforsten des Scripting-Index erforderlich!

Fahren wir mit unserer Analyse fort. Ich habe eine Verteilung mit den Spalten Größe, Gewicht, Geschlecht und Alter erstellt. Im erweiterten Protokoll gibt es jetzt einen Eintrag, der zeigt, dass ein Benutzerbefehl mit einer Datentabelle gestartet wurde und zu einem Distribution Platform-Fenster führte. Im JSL-Bereich habe ich den ordnungsgemäß formatierten (und kommentierten!!!) Eintrag zur Reproduktion der Distributionsplattform.

Lassen Sie uns nun eine Anpassung Y mal X von Gewicht vs. Größe durchführen. Die gleiche Geschichte – es gibt einen Eintrag in den Bereichen Enhanced Log und JSL.

Aber das ist nicht im Allgemeinen der Grund, warum wir Fit Y by X öffnen, oder? Wir möchten Linienanpassungen oder Hypothesentests durchführen. Wenn wir das tun, erfolgt keine Aktualisierung des erweiterten Protokolls oder eines neuen JSL-Codes.

Wir scheinen auf eine Straßensperre gestoßen zu sein. Aber warte! Das haben wir nicht, oder? Wir sind dem nicht gefolgt JMP-Workflow noch! Die Frage ist also (dem Arbeitsablauf folgend): Wie können wir das erweiterte Protokoll dazu bringen, die Änderungen zu erfassen, die wir durch Anpassen einer Linie an „Y an X anpassen“ vorgenommen haben? Wie immer findet man die Antwort durch DRÜCKEN DER ANTWORTTASTE! Für diejenigen, die meine verpasst haben erste Blogserie , ich nenne das kleine rote Dreieck den Antwortknopf.) Da wir uns in einem befinden JSL-Blogserie, wir gehen zum Skript speichern unter… Teil des kleinen roten Dreiecksmenüs, wo wir einen neuen Eintrag finden, Aufzeichnen .

Wenn Sie darauf klicken, wird ein neues Eintragspaar in das erweiterte Protokoll für „Y nach X anpassen“ mit aktivierten Anpassungslinienoptionen eingefügt.
So. Verdammt. Cool.
Randbemerkung: Ist Ihnen aufgefallen, dass es auch mit den Leimoperatoren (;) umgeht?

Nun zum letzten Teil. Wie erhalten wir diese JSL aus dem erweiterten Protokoll? Nun, ich habe gerade eine Frage gestellt, also drücken wir die Antworttaste für das erweiterte Protokoll. Und da finden wir ein Skript speichern > Im Skriptfenster Möglichkeit.

Und wir sind fertig! Ich könnte den zusätzlichen Bivariate-Aufruf (den ersten, ohne die Zeile) löschen und die beiden Berichtsfenster in eine New Window()-Funktion einfügen, aber der Punkt hier ist, dass ich 80 %, vielleicht 90 % des Weges zu einem abgeschlossenen Ergebnis erreicht habe Skript erstellen, ohne auch nur ein bisschen Code zu schreiben. ES KOMMENTIERT SOGAR FÜR DICH!!! (Ich bin im Moment total verrückt … Moment mal … ich muss mal durchatmen.)

Hier ist der fertige Code, falls Sie damit herumspielen möchten (Hinweis: Ich habe den Dateipfad geändert, damit er auf anderen JMP-Versionen funktioniert):
// Open Data Table: Big Class Families.jmp
Open( "$SAMPLE_DATA/Big Class Families.jmp" );
// Launch platform: Distribution
Distribution(
Continuous Distribution( Column( :height ) ),
Continuous Distribution( Column( :weight ) ),
Nominal Distribution( Column( :sex ) ),
Nominal Distribution( Column( :age ) )
);
// Launch platform: Bivariate
Bivariate( Y( :height ), X( :weight ) );
Bivariate( Y( :height ), X( :weight ), Fit Line( {Line Color( {230, 159, 0} )} ) )
Wohin soll es von hier aus gehen? Schon wieder
Hier sind wir wieder am Ende der Blogserie. Ich verspreche, dass es dieses Mal echt ist. Was sind also Ihre Hausaufgaben für diesen Eintrag? Nun, Sie könnten versucht sein, einfach still zu sitzen und auf die Ankunft des erweiterten Protokolls zu warten. Ich weiß, dass es verlockend ist, aber ich empfehle Ihnen, das zu üben, was wir in den früheren Episoden besprochen haben. Es handelt sich um wichtige Dinge, und Sie sollten das Gelernte anwenden. Viel Glück und viel Spaß beim Codieren!