In dieser Demonstration werfen wir einen Blick auf boolesche Funktionen sowie auf die If-Funktion, um ein Skripteditorfenster zu erhalten. Und auch hier ist die Tastenkombination Strg+T oder Sie können zum Menü Datei gehen und die Symbolleiste verwenden. Viele verschiedene Möglichkeiten, um dieses neue Skripteditorfenster zu erhalten. Und lass mich das Protokoll vor das Tagebuch bringen. Zurück im Skript-Editor-Fenster gebe ich den Code ein, in dem ich den Wert von der Variablen x zuweise. Und ich werde weitermachen und das initialisieren. Und dann werde ich in einer neuen Zeile einen Vergleich anstellen, und eines der Dinge in JSL ist, dass wir Argumente durch Vergleichsoperatoren verbinden können und JMP sie als eine einzige Klausel behandeln lässt. Wenn ich also weniger als x weniger als gleich eingetippt habe, wird dies auf einmal und nicht nacheinander ausgewertet, da diese Vergleichsoperatoren, wenn JMP sie so aneinandergereiht sieht, sogenannte Eliding-Operatoren sind. Also kann ich diese Zeile ausführen, und das ist natürlich ein echter Vergleich, der größer als ist, während er kleiner oder gleich ist. Also bekomme ich den booleschen Wert als Ergebnis. Nun, unsere häufigste Verwendung der Vergleichsfunktionen ist das Testen bestimmter Bedingungen, zum Beispiel in einer If-Funktion. Also ändere ich die erste Zeile und ersetze das durch a. Also weise ich x den Wert von zu. Und dann werde ich die zweite Zeile komplett durch meine If-Anweisung ersetzen. Also If und then in Klammern, x kleiner als Komma, die zurückgegebenen Ergebnisse sind die Zeichenkette unter dem Limit. Das ist also eine einfache Wenn/Dann-Anweisung. Wenn die Bedingung als wahr ausgewertet wird, gebe ich dieses Ergebnis zurück. Wenn die Bedingungsauswertung falsch ist, werte ich das zweite Argument nicht aus und gebe einen fehlenden Wert zurück. Also werde ich dieses ganze Skript ausführen. Nochmals die Tastenkombination dafür, Strg + R. Wenn x also den Wert speichert, ist er kleiner als und wir erhalten dieses Ergebnis. Aber wenn ich den Wert, den ich x zugewiesen habe, in be ändere und das gesamte Skript ausführe, erhalte ich diesen fehlenden Wert, weil diese Bedingung nicht wahr war. Und wieder können wir ein anderes Ergebnis haben. Wenn also die Bedingung nicht wahr ist, gebe ich anstelle eines fehlenden Werts dieses andere Ergebnis zurück. Und hier öffne ich meine doppelten Anführungszeichen und tippe Over the limit ein. Und wenn ich das ganze Skript ausführe, erhalte ich das andere Ergebnis. Die If-Funktion kann also so viele Bedingungen und Ergebnisse wie nötig annehmen, und dann können Sie immer das else-Ergebnis haben, wenn alle Bedingungen als falsch ausgewertet werden. Im nächsten Beispiel nehmen wir also eine Tabelle mit dem Alter von Menschen in Jahren und klassifizieren sie in eine der psychologischen Entwicklungsstufen von Erik Erikson. Also gehe ich zurück zum Tagebuch in Abschnitt und klicke auf Altersdaten. Wir haben also Individuen, und wir wollen sie in diese Stadien der psychologischen Entwicklung einordnen. Zurück im Tagebuch klicke ich also noch einmal auf Age to Stage Script. Dieses vorgefertigte Skript aus dem Journal sendet also die Nachricht „Neue Spalte“ an die Datentabelle „Alter mit“ – die Spalte erhält den Titel „Stufe“, und wir geben an, dass der Datentyp „Zeichen“ sein soll. Sobald die Spalte erstellt wurde, verwenden wir die for each row-Funktion, um sie mit einer If-Anweisung zu füllen. Und denken Sie daran, dass, sobald JMP auf eine wahre Bedingung in der If-Anweisung stößt, das einzige andere Argument, das ausgewertet wird, das entsprechende Ergebnis ist. Keine der anderen Bedingungen wird ausgewertet. Also eine Person, die alt ist, alle diese Altersvergleiche sind wahr, aber sobald wir bewerten, Ja, ist größer als, geben wir das Ergebnis „Später Erwachsener“ zurück und fahren mit der nächsten Zeile fort, da wir dies im Kontext der Iteration tun . Auf diese Weise müssen wir also nicht jede Ebene einklammern. Wir können einfach sagen, ob es größer ist als ob es größer ist als und so weiter. Und eine Sache, über die man nachdenken sollte, wenn man sich die Daten ansieht – in diesem Fall sind sie ziemlich gleichmäßig verteilt. Aber wenn Sie sich die Daten angesehen haben und festgestellt haben, dass sie dazu neigen, viele Beobachtungen am oberen Ende oder viele Beobachtungen am unteren Ende zu haben, dann ist dies das Ende Ihrer Verteilung, von dem aus Sie mit dem Klassieren beginnen möchten, denn wenn es so ist viele, viele Personen, deren Alter höher ist als in Ihrer Datentabelle, dann wird die Datentabelle in vielen Zeilen diese eine Bedingung auswerten, dieses Ergebnis zurückgeben und mit dem nächsten Schritt der Iteration fortfahren, anstatt alles andere auszuwerten. Also alle Zeilen - und noch einmal, wenn das die Mehrheit ist, wo die Leute vorbei sind, beschleunigen Sie einfach Ihre Skriptverarbeitung ein wenig, indem Sie mit der nächsten Iteration fortfahren, sobald das wahre Ergebnis gefunden wird. Lassen Sie uns also fortfahren und das Skript ausführen. Und Sie können sehen, dass die Spalte erstellt und dann mit der If-Anweisung gefüllt wurde. Zwei weitere Arten von Funktionen, über die wir hier sprechen möchten, sind logische Funktionen und Abfragefunktionen. In vielen Fällen müssen Sie also auf mehr als eine Bedingung gleichzeitig testen. Und Sie können das erreichen, indem Sie Ihre Bedingungen auf logische Weise kombinieren. Und einige Beispiele für logische Funktionen wären die UND- und ODER-Funktionen. Die UND-Funktion mit dem kaufmännischen Und-Operator stellt also sicher, dass alle Bedingungen wahr sind. Die ODER-Funktion hat den vertikalen Pipe-Operator. Dadurch wird sichergestellt, dass mindestens eine Bedingung wahr ist. Also verwende ich einfach das Skriptfenster, in dem ich das Age to Stage-Skript habe, und lösche es. Ich werde x so definieren, dass ihm der Wert eines Semikolons zugewiesen wird, y wird der Wert eines anderen Semikolons zugewiesen, und ich werde alles in eine Zeile eingeben und die Neuformatierung die Dinge bereinigen lassen. Also, wenn in Klammern, x kleiner als Und dann ist der Operator hier für ODER dieser senkrechte Balken, senkrechte Pipe, wenn x kleiner als ODER y größer als Das ist also meine Bedingung. Geben Sie dort ein Komma ein. Wenn einer von beiden oder beide wahr sind, dann werde ich die Ergebnisbedingung erfüllt zurückgeben. Und wenn beides nicht zutrifft, gebe ich das Ergebnis als nicht erfüllte Zeichenfolgenbedingung zurück. Und ich tippe mein abschließendes Semikolon noch einmal ein, zur Erinnerung, wir halten das für eine bewährte Methode, aber es ist nicht erforderlich, Ihr Skript mit einem Semikolon zu beenden. Ich werde fortfahren und mit der rechten Maustaste klicken, um neu zu formatieren. Und damit das nur ein bisschen aufgeräumt wird, nachdem ich alles in einer Zeile getippt habe. Wenn ich also das Skript ausführe und mindestens eine dieser beiden Bedingungen wahr ist, erwarte ich, dass die erste Ergebnisbedingung erfüllt wird. Und das ist tatsächlich das, was ich im Protokoll bekomme. Wenn beide Bedingungen erfüllt sein müssen, ersetze ich den vertikalen Pipe-Operator durch das kaufmännische Und. In diesem Fall ist nur eine Bedingung wahr, aber nicht beide. Also erwarte ich, dass ich das andere Ergebnis bekomme. Und wenn ich es ausführe, sehe ich das im Protokoll. Die andere Art von Funktion, die ich erwähnt habe, sind die Abfragefunktionen. Manchmal möchten Sie in der Lage sein, die Art eines Werts zu überprüfen. Beispielsweise müssen Sie vielleicht wissen, ob der Wert eine Zahl oder eine Liste ist. Es gibt viele verschiedene Arten von Werten, die möglich sind. In einigen Fällen erhalten Sie möglicherweise eine Fehlermeldung, wenn Sie versuchen, ein Skript mit der falschen Art von Wert auszuführen, die in einer Variablen gespeichert ist. Sie sollten also sicherstellen, dass Sie sich danach erkundigen, und vielleicht geht Ihr Skript in die eine oder andere Richtung, je nach Art des Werts in dieser Variablen. Also werde ich den Inhalt des Skripteditors wieder löschen. In der ersten Zeile werde ich x eine Matrix zuweisen. Also tippe ich x, die Assign-Funktion, und dann eckige Klammer, Leerzeichen, Komma. Das ist also meine erste Reihe. Platz, das ist meine zweite Reihe. Schließen Sie diese eckige Klammer, geben Sie mein Semikolon ein, und dann mache ich das im Kontext einer if-Anweisung, und ich möchte Ihnen auch zeigen, dass es diese automatische Vervollständigungsfähigkeit für Funktionen in JSL gibt. Und wenn ich die ersten Buchstaben einer Funktion eingebe. In diesem Fall beginnen die Abfragefunktionen alle mit den Buchstaben IS für is. Und drücken Sie dann die Strg-Taste und die Leertaste. Ich kann diese Liste nach unten durchsuchen, um die gewünschte Abfragefunktion in diesem Fall zu finden, ich verwende Is Matrix und drücke dann die Eingabetaste, um sie auszuwählen, und JMP vervollständigt die Funktion für mich. Ich muss natürlich immer noch die Klammern öffnen, und ich setze dort x ein, schließe die Klammern, und dann tippe ich vor der schließenden Klammer der If-Anweisung ein Komma, und ich verwende dasselbe Ergebnisse, die Bedingung erfüllt sind, geschlossene doppelte Anführungszeichen, Komma, offene doppelte Anführungszeichen Bedingung nicht erfüllt. Lassen Sie mich Pfeil, um sicherzustellen, dass ich alle in einer Reihe habe, und ich klicke mit der rechten Maustaste, um neu zu formatieren. In diesem Fall speichert x also eine Matrix. Also erwarte ich dieses erste Ergebnis, und wenn ich das Skript ausführe, bekomme ich es. Nehmen wir jedoch an, dass mein Skript etwas anderes macht, wenn das, was x speichert, ein String ist. Vielleicht ist dies eine Benutzereingabe, vielleicht wird sie aus einer Datentabelle oder woanders abgerufen. Also werde ich das Wort Matrix hier in String ändern und das Skript ausführen. Und so bekomme ich natürlich das else-Ergebnis, weil die Bedingung als falsch bewertet wurde. Hier haben Sie also einige Beispiele für boolesche Funktionen gesehen, die die If-Funktion verwenden, um Daten zu klassifizieren, sowie die If-Funktion in Verbindung mit logischen Funktionen und Abfragefunktionen verwenden.