SAS zu JSL - Schleifen ausführen...Ich bin ein langjähriger SAS-Benutzer, der gezwungen ist, JSL zu lernen ...
Dinge, die ich in SAS einfach fand, scheinen in JSL so schwierig zu sein ...
Könnte mir jemand zeigen, wie Do-Loops in JSL funktionieren, indem er JSL-Code mit mir teilt, der die folgende verschachtelte Do-Loop-Tabelle mit JSL generieren würde?
Datenfrust;
do temp = 1 bis 10 um 1;
drücken Sie = 5 bis 20 mal 5;
do time = 1 bis 1000 mal 20;
Ausgang;
Ende;
Ende;
Ende;
Lauf;
Dies sollte ziemlich einfach sein, um diese Art von Simulationen zu erstellen, aber ich kann das anscheinend nicht herausfinden.
SkripterstellungBetreff: SAS zu JSL - Schleifen ausführen...Sie sind an der richtigen Stelle für Unterstützung beim Lernen von JSL.Der Scripting-Index ist Ihr Freund, ebenso wie die Online-Dokumentation.
Hier ist ein Code-Snippet, das tut, was Sie wollen:
dt = data table("frustration");
for (temp = 1, temp <= 10, temp++,
for (press = 5, press <= 20, press+=5,
for (time = 1, time <= 1000, time+=20,
show(temp, press, time); // output
);
);
);
Betreff: SAS zu JSL - Schleifen ausführen...All dies wird im Scripting Guide behandelt, den ich Ihnen sehr, sehr dringend zum Lesen empfehle.Sie ist in der JMP-Dokumentationsbibliothek verfügbar, die im Pulldown-Menü „Hilfe“ in JMP verfügbar ist.
Betreff: SAS zu JSL - Schleifen ausführen...C++-Programmierhandbuch für JSL könnte auch etwas helfen. Es versucht zu zeigen, wie die JSL for-Anweisung wirklich eine Funktion ist, und wenn Sie das wissen, wird es viel einfacher, die richtige Syntax zu finden.
Betreff: SAS zu JSL - Schleifen ausführen...Danke für die Hilfe pmroz
Betreff: SAS zu JSL - Schleifen ausführen...Ich verstehe, was du sagst ... danke ... aber es ist so, als würde dir jemand sagen, dass du die Bibel lesen sollst, um das Christentum zu verstehen ... Ich habe ungefähr 2 Stunden in der Scripting-Anleitung verbracht, um herauszufinden, wie das scheinbar geht einfaches Konzept ... außerdem hatte ich viel Erfolg beim Schreiben anderer Skripte ... aber ehrlich gesagt, der Skriptleitfaden lässt mich nach zusätzlichen 20.000 im Budget für eine SAS-Lizenz sehnen.
Ich bin kein Hardcore-Coder... Ich bin Ingenieur und versuche nur, Dinge schnell zu erledigen.
Betreff: SAS zu JSL - Schleifen ausführen...Danke ... das ist hilfreich.
Betreff: SAS zu JSL - Schleifen ausführen...Ich finde es einfacher, anhand von Beispielen zu lernen, also schauen Sie sich so viel Code an, wie Sie in diesem Forum finden können.Sobald Sie losgelegt haben, wird der Scripting-Index wirklich Ihr Freund sein.
Die JSL Pro Schleifen und wenn Aussage, obwohl einfach im Konzept, waren für mich anfangs etwas verwirrend.Um Ihre Lernkurve zu verkürzen wenn , denken Sie daran, dass es sich um eine Funktion handelt und das Komma darstellt dann , sonst wenn und anders .Öffnen Sie ein Skriptfenster ( Strg-T ), mit der rechten Maustaste in das Fenster klicken und auswählen Eingebettetes Protokoll anzeigen .Fügen Sie den folgenden Code ein und klicken Sie Strg-R um es auszuführen.Spielen Sie mit verschiedenen Werten für a, b und c herum, um zu sehen, was passiert.
a = 1;
b = 2;
c = 1;
if (a == b,
// then
print("a is equal to b");
,
// else if
a == c,
// then
print("a is equal to c");
,
// else
print("No match found for a");
);
Betreff: SAS zu JSL - Schleifen ausführen...Ein vollständiges Beispiel dafür, wie schwer es ist, mit einer neuen Sprache anzufangen. (Der Hilfe->Scripting-Index und die Online-Hilfe sind ergänzende Ressourcen. Ich verwende meistens den Hilfe->Skriptindex, um mich daran zu erinnern, wie es funktioniert. Die Online-Hilfe ist für den Anfang vielleicht besser.) Ich habe hier etwas mehr als nur nötig eingefügt. Ich habe die SAS-Regeln für den Fall von Namen vergessen ...
Names Default To Here( 1 );
// what does that mean? JSL has several namespaces; the 'here' namespace is for this
// editor window and means 'press' is really 'here:press' but 'dtFrustration:press' belongs to
// the table's namespace (of column names.) You could also just use different names,
// like 'iPress' for the loop control variable. JMP's variable names are almost never
// case sensitive, the weird exception being column names, which are only sensitive <BR />// if both 'Age' and 'age' are columns...Don't do that!
// an easy way to get this table script is to make a new table with the
// JMP GUI, then use the top-left red triangle to 'Copy Table Script (No Data)'.
// By convention, JSL uses 'dt' in the variable name that holds a handle to a table.
dtFrustration = New Table( "frustration",
New Column( "temp" ), // continuous numeric by default
New Column( "press" ),
New Column( "time" )
);
// because the table might be linked to other reports, there
// is a lot of hidden messaging when the table changes. A lot.
// The messaging can be shut off and later enabled for a nice speedup.
// (to see it take longer, rerun just the loop below.)
// dtFrustration << BeginDataUpdate; // pair with EndDataUpdate, below
For( temp = 1, temp <= 10, temp++,
For( press = 5, press <= 20, press += 5,
For( time = 1, time <= 1000, time += 20,
dtFrustration << addrows( 1 );
dtFrustration:time = time;
dtFrustration:temp = temp;
dtFrustration:press = press;
)
)
);
// dtFrustration << EndDataUpdate;
Betreff: SAS zu JSL - Schleifen ausführen...Nochmals vielen Dank an SUPER USER PMROZ; das ist hilfreich.