Hallo! Ich möchte mehrere Variabilitätsdiagramme in einem Fenster aus einer Liste mit Spaltennamen erstellen können. Ich kann dies erfolgreich in Echtzeit ausführen (dank der Hilfe aus anderen JMP-Forumsbeiträgen). Ich möchte aber auch das Skript in der Datentabelle speichern, damit der Benutzer beim nächsten Öffnen der Datentabelle einfach auf das grüne Dreieck klicken kann, um dasselbe Fenster mit Diagrammen zu erstellen. Ich bin nah dran: Es speichert zwar etwas in der Datentabelle, aber das Fenster mit den Diagrammen wird beim Klicken auf das grüne Dreieck nicht erstellt. Wenn ich mit der rechten Maustaste klicke und „Bearbeiten“ auf dem grünen Dreieck auswähle, sehe ich, dass das Fenster mit den Diagrammen nicht erstellt wird, weil das gesamte Skript in Anführungszeichen steht. Ich weiß nicht, wie ich die Anführungszeichen entfernen kann. Irgendwelche Ideen?
Zuerst erstelle ich eine Zeichenfolge (plotAllStandardExpr), um das neue Fenster durch eine Reihe von Verkettungen innerhalb einer For-Schleife zu erstellen.
Zweitens erstellt die Zeile Eval(Parse(plotAllStandardExpr)) erfolgreich das Fenster mit allen darin enthaltenen Diagrammen.
Aber die Zeile Eval(Substitute(....) speichert lediglich die Zeichenfolge in Anführungszeichen in der Datentabelle. Ich habe Eval(Parse(plotAllStandardExpr)) innerhalb der Substitute-Funktion ausprobiert, aber das hat nicht funktioniert.
Current Data Table(dtSplit_copy);
plotAllStandardExpr = "New Window(\!"Var Charts: All\!", V List Box(";
for(i = 1, i <= NItems(plotcols), i++,
plotAllStandardExpr = plotAllStandardExpr || "Variability Chart(
Y(" || plotcolsString[i] || "),
X( :Split, :Voltage, :tst_temp ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ));"
);
plotAllStandardExpr = plotAllStandardExpr ||"))";
Eval(Parse(plotAllStandardExpr));
Eval(Substitute(Expr(dtSplit_copy << New Script("All Var charts", xxxx)),
Expr(xxxx), Eval(plotAllStandardExpr)));
Sie müssen Parse() verwenden, um die Anführungszeichen zu entfernen (Eval() ist nicht erforderlich, da Sie den Ausdruck möchten). Nachfolgend finden Sie einige Optionen
Names Default To Here(1);
dt = New Table("");
plotcolsString = {"height", "weight"};
plotAllStandardExpr = "New Window(\!"Var Charts: All\!", V List Box(";
For(i = 1, i <= N Items(plotcolsString), i++,
plotAllStandardExpr = plotAllStandardExpr || "Variability Chart(
Y(" || plotcolsString[i]
||
"),
X( :Split, :Voltage, :tst_temp ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ))
,"
);
plotAllStandardExpr = plotAllStandardExpr || "))";
Parse(plotAllStandardExpr);
Eval(EvalExpr(dt << New Script("all var charts", Expr(Parse(plotAllStandardExpr)))));
Eval(Substitute(
Expr(dt << New Script("All Var charts2", _script_)),
Expr(_script_), Parse(plotAllStandardExpr))
);

Vielen Dank. Beide Optionen funktionierten wie angekündigt!