So speichern Sie die ausgewertete Liste im DatentabellenskriptHallo,
Ich möchte ein Skript in einer Datentabelle speichern, damit Benutzer die Tabellen später öffnen und die Skripts ausführen können.
Mein Problem ist, dass ich nicht weiß, wie ich die Werte der Variablen, die ich in meinem ursprünglichen Skript verwende, im Datentabellenskript ausdrucken kann. Ich habe es mit expr, eval versucht, ...
Das folgende Beispiel zeigt es deutlich: Ich versuche ein DataTableScript zu speichern, das einen einfachen Graphen basierend auf "mylist" generiert. aber wie kann man die in "mylist" enthaltene echte Zeichenfolge speichern?
Danke für Ihre Hilfe.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
mylist = {"sex" , "age"};
Graph = Variability Chart(
Y( :weight ),
X( eval(mylist) ),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
);
dt << New Script(
"Test",
Variability Chart(
Y( :weight ),
X( Eval(mylist) ),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
);
);Betreff: So speichern Sie die ausgewertete Liste im DatentabellenskriptHier ist eine Möglichkeit, wie Sie Ihre Ausdrücke zusammenstellen können
NamesDefaultToHere(1);
CurrentDataTable(Open( "$SAMPLE_DATA/Big Class.jmp" ));
// Expression that makes a variability chart
makeVC =
Expr(
vc = CurrentDataTable() << Variability Chart(
Y(:weight),
X(TBD),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 )
);
);
makeBiv = Expr(Bivariate( Y( :height ), X( :weight ) ));
// Put the required 'x' values in 'makeVC'
mylist = {"sex" , "age"};
SubstituteInto(makeVC, Expr(TBD), Eval(myList));
newexpr = expr(tbd; tbd2);
substituteinto(newexpr, expr(tbd), nameexpr(makevc),
expr(tbd2), nameexpr(makeBiv)
);Betreff: So speichern Sie die ausgewertete Liste im DatentabellenskriptHallo,
Ich habe eine zusätzliche Frage zu diesem Thema:
Aus verschiedenen Gründen muss ich den saveScript-Ausdruck leicht ändern:
Ich möchte ein paar Zeilen Code hinzufügen:
dt << Clear Select;
dt << Clear Row States;
dt << Select Where( ...);
dt2 = dt << subset ....;
Dann speichere ich das neue Skript in dt2.
Ich habe versucht, die beiden Ausdrücke anzufügen oder zu verketten, aber es hat nicht funktioniert 
Irgendeine Hilfe ?
Betreff: So speichern Sie die ausgewertete Liste im DatentabellenskriptDer Stellvertreter macht den Job !!!
Vielen Dank
Betreff: So speichern Sie die ausgewertete Liste im DatentabellenskriptIch kann es nicht: Die Liste ist das Ergebnis eines Skripts
Betreff: So speichern Sie die ausgewertete Liste im DatentabellenskriptFügen Sie einfach die Listendefinition als Teil des Tabellenskripts hinzu:
dt << New Script(
"Test",
mylist = {"sex" , "age"};
Variability Chart(
Y( :weight ),
X( Eval(mylist) ),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
);
);Betreff: So speichern Sie die ausgewertete Liste im DatentabellenskriptIch neige dazu (zu versuchen), Code-Duplizierungen zu vermeiden (was als schlecht für die Wartbarkeit von Code in einer beliebigen Programmiersprache angesehen wird) und halte mich an einige Designmuster, die mir vertraut sind. In diesem Sinne würde ich es wie unten gezeigt tun. Aber ich bin mir sicher, dass es viele andere Möglichkeiten gibt.
NamesDefaultToHere(1);
CurrentDataTable(Open( "$SAMPLE_DATA/Big Class.jmp" ));
// Expression that makes a variability chart
makeVC =
Expr(
vc = CurrentDataTable() << Variability Chart(
Y(:weight),
X(TBD),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 )
);
);
// Put the required 'x' values in 'makeVC'
mylist = {"sex" , "age"};
SubstituteInto(makeVC, Expr(TBD), Eval(myList));
// Make the chart
makeVC;
// Now save the script that makes the chart using a similar method to the above
saveScript = Expr(CurrentDataTable() << New Script("My Variability Chart", TBD));
SubstituteInto(saveScript, Expr(TBD), NameExpr(makeVC));
saveScript;