Diese Demonstration zeigt, wie Datenspalten und Datentabellenzeilen verwaltet werden. Und ich werde ein Skript verwenden, um eine neue Datentabelle mit einer Spalte zu erstellen, um zu beginnen. Also klicke ich im Kursjournal im Abschnitt auf Neue Datentabelle und -spalte erstellen. Und Sie können sehen, dass wir die neue Tabellenfunktion verwenden. Wir werden die Datentabellen-Objektreferenz, die dadurch erstellt wird, in der Variablen dt speichern. Und die Tabelle heißt Test Data. Ich werde eine einzelne Spalte namens pH haben. Der Datentyp ist numerisch und der Modellierungstyp kontinuierlich. Und dann verwende ich das Werte-Argument, das ich auch als Set-Werte bezeichnen könnte – beide werden synonym sein –, um es mit dem Index-Operator zu füllen, der ein Infix-Operator ist. Wir zählen also in Schritten von eins von eins bis sieben. Und weil ich diese Werte liefere, ist das die Anzahl der Zeilen, die diese Datentabelle haben wird. Es gibt ein optionales Argument zum Hinzufügen einer bestimmten Anzahl von Zeilen, die ich verwenden könnte, wenn ich anfänglich keine Werte ausgefüllt habe. Und Sie werden auch sehen, ob JMP ein Skript für eine Datentabelle für Sie mit dieser Get-Skript-Nachricht schreiben lässt, die das Argument zum Hinzufügen der Zeilen enthält. Wir geben auch ein Format an, indem wir das feste Dezimalargument mit einem Feld mit und drei Dezimalstellen verwenden. Wir werden die Sperroption für die Spalte aktivieren, damit sie nicht geändert werden kann, ohne sie zu entsperren. Und wir verwenden das Range-Check-Argument, um diese Spalteneigenschaft zuzuweisen. Und die Syntax hier LELE ( ) sagt nur, dass kleiner oder gleich dem Wert in der Spalte kleiner oder gleich ist. Und schließlich haben wir ein Beispiel für das Set-Property-Argument, wo wir die Eigenschaft von setzen Spezifikationsgrenzen. Und weil es mehr als eine Option zum Angeben der Spezifikationsgrenzen gibt, haben wir eine Liste der drei Grenzen – die untere Spezifikationsgrenze, die obere Spezifikationsgrenze und das Ziel. Denken Sie auch daran, dass alle diese optionalen Argumente für die neue Spalte als Nachrichten an die Spalte gesendet werden können, nachdem sie erstellt wurde, oder, wie wir hier sehen, als Argumente für die neue Spalte. Also werde ich das Skript ausführen. Und Sie können im Protokoll hier unten sehen, dass wir diese Instanz eines Datentabellenobjekts namens Testdaten erstellt haben. Und das würde ich natürlich sehen, wenn ich den Mauszeiger über die Variable dt in meinem Skript bewegen würde. Und ich habe die Datentabelle mit einer einzigen Spalte und sieben Zeilen. Und wir können alle Elemente aus dem in der Tabelle selbst angegebenen Skript sehen. Zum einen weiß ich also, dass der Datentyp numerisch ist, weil ich sehen kann, dass das Symbol des Modellierungstyps zeigt, dass er kontinuierlich ist. Und der kontinuierliche Modellierungstyp nimmt nur numerische Daten. Außerdem sind die Zahlenwerte rechtsbündig. Wenn Zahlen als Zeichen behandelt würden, würden sie linksbündig ausgerichtet. Wenn wir uns die Symbole im Spaltenbereich ansehen, gibt es das Sperrsymbol, das anzeigt, dass ich die Spalte gesperrt habe. Das kleine Häkchen zeigt diese Reichweitenprüfung an. Und dann zeigt das Sternchen eine beliebige Anzahl zusätzlicher Eigenschaften an, die keine eigenen eindeutigen Symbole haben. Um also in den Spalten-Info-Dialog zu gelangen, gibt es natürlich mehrere Möglichkeiten. Wir können eine Abkürzung nehmen, indem wir auf dieses Sternchen klicken. Und wir sehen, dass diese Eigenschaft Spezifikationsgrenzen sind. Auch in diesem Dropdown-Menü sind möglicherweise mehr als eine Eigenschaft aufgeführt. Und das kann ich auswählen. Und das bringt mich in die Spalte info. Natürlich können wir auch die Spalte auswählen und das Spaltenmenü verwenden oder mit der rechten Maustaste auf die Spalte klicken und Spalteninfo auswählen. Es gibt also die Spezifikationsgrenzen mit den im Set-Property-Argument angegebenen Werten. Wir haben auch diesen Reichweitentest. Und wieder ist es kleiner oder gleich, kleiner oder gleich – dass LELE in der generischen Syntax angezeigt wird – und dann haben wir die eigentlichen Werte. Hier können wir sehen, dass die Spalte gesperrt wurde. Der Datentyp ist numerisch. Der Modellierungstyp ist kontinuierlich. Und das Format ist jene feste Dezimalzahl, deren Feldbreite die maximale Anzahl der in der Spalte darstellbaren Zeichen und drei Nachkommastellen ist. Also werde ich den Spalteninfodialog abbrechen. Und ich werde fortfahren und diese pH-Säule abwählen. Jetzt gibt es eine Option im Dropdown-Menü der Spalteneigenschaften, um Ihre eigene Benutzerspalteneigenschaft festzulegen. Und wenn Sie das interaktiv machen, heißt die Menüoption einfach Andere. Und Sie nennen die Immobilie und den Wert, den sie annehmen wird. Ich habe ein Skript im Journal namens Add User Column Property. Und wir schicken das an die pH-Säule. Diese Benutzerspalte heißt eigentlich Messgerätkalibrierung. Und ich möchte nur das heutige Datum als Zeichenkette für Monat, Tag und Jahr formatieren. Und so ist der Text hier das zweite Argument zum Festlegen der Eigenschaft. In diesem Fall verwende ich die Today-Funktion, um die Anzahl der Sekunden seit Mitternacht im Januar in dem Moment abzurufen, in dem ich diese Codezeile ausführe. Ich schließe das in die Formatfunktion ein und gebe das Zeichenkettenformat an, als das ich es angezeigt haben möchte. Auch dies könnte ein Trial-and-Error-Prozess sein, wenn Sie ein Skript schreiben. Wenn ich nur das angeben würde, was ich hervorgehoben habe – und ich denke, ich hätte es tun können – gibt es – ja. Ich wollte sicherstellen, dass ich die richtige Anzahl von Klammern angegeben hatte. Lassen Sie mich das ausführen, was ich gerade hervorgehoben habe. Also wähle ich das aus. Und ich Strg+R. Und ich sehe, dass diese Zeichenfolge genau so erscheint, wie ich sie im Protokoll haben möchte. Und so könnte ich diese Set-Property-Nachricht, diesen Code mit der Property-Nachricht, zunächst ohne die eval-Funktion ausführen. Und wenn ich das täte, würde ich sehen, wenn ich in der Spalte info nach der Messgerätkalibrierungseigenschaft schaue, buchstäblich den Code. Es würde nicht wirklich bewerten. Die set-Eigenschaft wertet also möglicherweise ihr zweites Argument nicht aus, sodass wir es in die eval-Funktion einschließen müssen. Wenn Sie es jetzt außerhalb der Set-Property-Nachricht ausführen, wird dies einfach – lassen Sie mich fortfahren und das ausführen – es wird genau das Gleiche zurückgeben. Dies könnte also etwas sein, bei dem Sie zunächst nur das Format der Today-Funktion haben und dann feststellen, dass es nicht das zurückgegeben hat, was Sie in Ihren Spalteneigenschaften wollten. Und dann würden Sie feststellen, dass Sie diese Bewertung hinzufügen mussten. Also werde ich nichts davon auswählen und ich werde dieses Skript ausführen. Die Nachricht, die ich hier im Protokoll erhalte, ist einfach skriptfähig. Es bedeutet, dass ich etwas getan habe, das skriptfähig war. Sie werden also manchmal feststellen, dass Sie Code ausführen und das, was Sie erwarten, nicht passiert. Und Sie sehen möglicherweise nur diese skriptfähige Nachricht. Dann müssen Sie versuchen herauszufinden, was in diesem Fall schief gelaufen ist, weil Sie aus dem Wort skriptfähig keine wirklichen Informationen erhalten. Aber in unserem Fall gehen wir weiter zum Tisch. Und wieder können wir einfach in die Spalteninformationen gelangen, indem wir auf dieses Sternchen klicken. Und ich mache es auf diese Weise, um zu zeigen, dass wir jetzt ein weiteres Element in diesem Menü haben. Auch hier werden alle Spalteneigenschaften, die keine eigenen eindeutigen Symbole haben, in diesem Sternchenmenü angezeigt. Und ich klicke auf Messgerätkalibrierung, sodass beim Öffnen des Spalteninfodialogs diese Eigenschaft ausgewählt ist. Und da ist das ausgewertete Ergebnis der Verwendung der Today-Funktion und der Formatierung als Zeichenfolge. Also werde ich das kündigen. Und ich werde einfach das Skripteditorfenster für die Eigenschaft "Benutzerspalte hinzufügen" verwenden, um ein wenig mehr mit dieser Tabelle herumzuspielen. Es muss jetzt nicht mehr ganz so breit sein. Also möchte ich jetzt eine neue Spalte als Nachricht an die Datentabelle senden. Und ich werde diese neue Säule Hydronium nennen. Und ich werde eine Formel hinzufügen, nachdem ich sie erstellt habe. Und natürlich könnte ich die Formel als Teil der Erstellung der Spalte hinzufügen. Und ich werde auch tatsächlich die Spaltenobjektreferenz speichern, die sich aus dem Code in einer Variablen ergibt. Und ich nenne es einfach HYD, hyd für Hydronium. Und ich werde dies dem Ergebnis des Sendens einer Nachricht an dt zuweisen, denn darin haben wir die Referenz auf das Testdatenobjekt gespeichert. Also sende ich die Nachricht an dt neue Spalte und öffne dann Klammern und Zeichenkette. Das einzige erforderliche Argument für eine neue Spalte ist der Spaltenname Hydronium. Und ich werde weitermachen und das ausführen. Und das Speichern dieses Ergebnisses in dieser Variablen bedeutet, dass ich nicht den ganzen Namen Hydronium erneut eingeben muss. Also musste ich diese Objektreferenz nicht speichern. Ich kann immer noch mit der Kolumne kommunizieren. Aber das erspart mir nur ein bisschen Tipparbeit, um ihm diesen abgekürzten Namen zu geben. Nehmen wir nun an, wie ich bereits erwähnt habe, ich möchte dieser Spalte eine Formel hinzufügen. Also gehe ich einfach zu einer neuen Zeile. Und ich möchte aufpassen, dass ich nicht versehentlich das gesamte Skript erneut ausführe und eine zweite Hydronium-Spalte erstelle. Also werde ich diese erste Zeile auskommentieren. Und ich werde eine Nachricht an diese Variable hyd senden. Und die Botschaft ist Formel gesetzt. Und die Formel werde ich mit dem negativen pH-Wert potenzieren, also erhöhe auf-- und dann öffne ich Klammern-- Minus-- und ich verwende den Doppelpunkt-Scoping-Operator, weil ich mich auf den beziehe pH-Spalte, nur um sicherzugehen, falls in meinem globalen Namensraum noch ein anderer Variablenname ph herumschwirrt. Ich verwende Names Default to Here nicht, obwohl wir dies in der Praxis als Best Practice empfehlen würden. Also werde ich dieses Semikolon eingeben und diese Zeile des Skripts ausführen. Auch hier sehen wir die skriptfähige Nachricht im Protokoll. Aber wir können die Tabelle untersuchen und sehen, dass diese Werte ausgefüllt wurden. Es gibt ein paar andere Dinge, mit denen Sie herumspielen können, wenn Sie mit unseren Spalten und Zeilen arbeiten. Nehmen wir an, ich möchte Zellen in einer Datentabelle einfärben, um Werte zu kennzeichnen, die eine bestimmte Zahl überschreiten. Ich gehe also zu einer neuen Zeile im Skript-Editor-Fenster. Ich erstelle eine Variable namens callout. Und ich werde zuweisen, dass das Ergebnis der in dt gespeicherten Datentabelle, die die Nachricht erhält, Zeilen erhält, wo. Und dann wird mein boolescher Vergleich sein, dass die Werte in der Spalte pH größer sind als Also werde ich nur diese Zeile ausführen. Und Sie können sehen, dass rows and rows where einen Spaltenvektor mit Zeilennummern an mich zurückgibt. Und dann schicke ich eine Nachricht an pH. Und da diese Spaltenobjektreferenz nicht in einer Variablen gespeichert wird, verweise ich nur mit dem Namen darauf. Der pH-Wert wird also die Nachricht Farbzellen erhalten. Dies ist also eine weitere Nachricht, die wir an eine Spalte senden können. Und ich werde den Namen der Farbe als erstes Argument verwenden. Es gibt auch Indexwerte und Sie können die RGB-Werte verwenden. Ich verwende den Namen als Zeichenfolge. Also werde ich diese Zellen rot färben. Und dann ist das zweite Argument, welche Zellen möchten Sie einfärben? Sie können die gesamte Spalte ausführen oder die Zeilennummern angeben. Ich werde also die Variable Callout verwenden, die die Zeilen speichert, in denen der pH-Wert größer als drei ist. Und ich werde nur diese Linie laufen lassen. Beachten Sie übrigens, dass ich vergessen habe, ein Semikolon zu setzen. Das zeigt also, dass dieses abschließende Semikolon nicht erforderlich ist. Es ist nur, wenn ich zusätzliche Argumente habe. Wenn wir uns jetzt die Datentabelle ansehen, sehen Sie, dass diese vier Zellen rot eingefärbt wurden. Dies könnte also eine nette Sache sein, wenn Sie eine große Datentabelle haben und Sie vielleicht Spezifikationsgrenzen für einige der Spalten haben. Sie könnten beispielsweise Zellen basierend auf diesen Spezifikationsgrenzen für Dinge einfärben, die außerhalb der Spezifikation liegen, um diese visuell in der Datentabelle zu kennzeichnen, bevor Sie überhaupt mit dem Betrachten von Diagrammen beginnen. Sie müssen Zellen sicherlich nicht einfärben, aber es ist eine Option, die verwendet werden kann. In dieser Demonstration haben wir also ein Beispiel gesehen, wie Sie eine neue Datentabelle mit einer Spalte erstellen, eine Spalte zu dieser Datentabelle hinzufügen und ein wenig mit einigen Dingen herumspielen, die wir mit unseren Spalten und Zeilen machen können.