Überblick
Mithilfe der JMP Scripting Language (JSL) können Sie ein Skript schreiben, das Werte auf der Grundlage von Daten zuweist, die in einer anderen Datentabelle gespeichert sind. Das folgende Beispielskript zeigt, wie Sie mithilfe einer Nachschlagetabelle Schulstufen auf der Grundlage des Alters eines Schülers zuweisen können. Das Skript führt Folgendes aus:
- Öffnen Sie die ursprüngliche Datentabelle mit einer Liste der Schüler und ihrem Alter.
- Fügen Sie der ursprünglichen Datentabelle eine neue Spalte hinzu, um den Schulwert zu speichern.
- Erstellen Sie eine Nachschlagetabelle mit den Altersgruppen für die Schulstufen.
- Durchlaufen Sie jede Zeile der ursprünglichen Datentabelle:
- Rufen Sie die Zeilennummer in der Nachschlagetabelle ab, in der das Alter innerhalb des Altersbereichs liegt.
- Weisen Sie den Schulwert aus der Nachschlagetabellenzeile der neuen Spalte in der ursprünglichen Datentabelle zu.
Anweisungen
Klicken Sie in einer JMP-Sitzung auf das Menü Datei und wählen Sie Neu ► Skript . Kopieren Sie das folgende Skript und fügen Sie es in das Skriptfenster ein. Um das Beispielskript auszuführen, klicken Sie auf das Menü Bearbeiten und wählen Sie Skript ausführen .
/* Open a sample data table */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Add a column for the assignment */
dt << New Column( "School", Character );
/* Create a lookup table */
lt = New Table( "SchoolLookup",
Add Rows( 3 ),
New Column( "SchoolLevel", Character, Nominal, Set Values( {"Elementary", "Middle", "High"} ) ),
New Column( "Low", Numeric, Continuous, Format( "Best", 12 ), Set Values( [5, 13, 15] ) ),
New Column( "High", Numeric, Continuous, Format( "Best", 12 ), Set Values( [12, 14, 18] ) )
);
/* Loop through each row of the original data table */
For( i = 1, i <= N Rows( dt ), i++,
/* Obtain a matrix contining the row number of the lookup table where the age falls within the range */
ageRange = lt << Get Rows Where(
Column( lt, "Low" )[] <= Column( dt, "age" )[i] & Column( dt, "age" )[i] <= Column( lt, "High" )[]
);
/* Extract the row number from the matrix */
r = ageRange[1];
/* Assign the school value to the original data table */
Column( dt, "School" )[i] = Column( lt, "SchoolLevel" )[r];
);
Zusätzliche Dokumentation
Weitere Informationen zur JMP-Skriptsprache finden Sie im JMP-Skripthandbuch . Sie können das Handbuch von JMP aus aufrufen, indem Sie auf das Hilfemenü klicken und „JMP-Hilfe“ auswählen. Wählen Sie im Online-Inhaltsverzeichnis „Skripthandbuch“ aus.
[Vorheriger JMP-Hinweis 46535]
Alternative 1: Tabellen/Update verwenden
Unterschied: verwendet r= ageRange[Length(agerange)] anstelle von agerange[1]
Alternative 2: Tabellen/Join verwenden
Unterschied: erzeugt eine neue Tabelle