Ermöglichen Sie Funktionen wie Dispatch, Zeichenfolgenvariablen oder Ausdrücke zu akzeptierenBestimmte Funktionen akzeptieren nur Textargumente in Anführungszeichen. Dies ist ärgerlich, wenn eine große Anzahl von Plots oder Tabellen mithilfe eines Skripts generiert wird.
Es wäre schön, wenn so etwas wie das Folgende funktionieren würde -
// k is some procedurally generated string variable
dt << Variability Chart(
Y( :ycolumn),
X( :xcolumn),
SendToReport(
Dispatch({k}, "2", ScaleBox,
{Min( 300 ), Max( 470 ), Inc( 10 ), Minor Ticks( 1 )}
))));
Stattdessen muss ich verschachtelten Code wie diesen verwenden -
Eval(Eval Expr(dt << Variability Chart(
Y( :ycolumn),
X( :xcolumn),
SendToReport(
Dispatch({Expr(k)}, "2", ScaleBox,
{Min( 300 ), Max( 470 ), Inc( 10 ), Minor Ticks( 1 )}
))))));
Funktionen mit diesem mir bekannten Problem - Versand, als Spalte ,: Name
SkriptingBetreff: Funktionen wie Dispatch dürfen Zeichenfolgenvariablen oder Ausdrücke akzeptierenVielen Dank für die Eingabe, und ja, Sie haben Recht mit New Column. Ich habe meinen ursprünglichen Beitrag aus Gründen der Übersichtlichkeit bearbeitet.
Betreff: Funktionen wie Versand, Formel, Als Spalte usw. zulassen. Zeichenfolgenvariablen akzeptieren oder ausdrückenIch werde mit Ihnen über den Versand abstimmen. Einige Ihrer Behauptungen sind jedoch nicht wahr. Für eine neue Spalte ist kein Ausdruck erforderlich.
Derzeit verwendet die Funktion As Column () nur einen Spaltennamen als Argument. Obwohl Col << get name eine Zeichenfolge zurückgibt, ist es meines Wissens kein Objektname.
Frühere Versionen von JMP hatten keine As Column (). Spalte (txt) kann und kann in einer Formel verwendet werden, wenn es sich um eine Spaltenformel wie Col Mean () handelt. Da die meisten Spaltenformeln jedoch zeilenweise ausgeführt werden, um auf die Zeilenwerte zu verweisen, erfordert die Formel die Syntax Column (txt) [] oder Column (#) []. Ich glaube, AsColumn () wurde erstellt, um auf die Vektorwerte zu verweisen.
Da ich eine schreckliche Schreibkraft bin, verwende ich immer noch gerne die Syntax der linken und rechten Klammer rechts von Column (txt) []. Es sind nur 2 Zeichen wie "As"! Ich poste dies nicht, um Ihren Wunschliste-Artikel zu stornieren oder zu diskutieren, sondern um jetzt eine einfache Alternative anzubieten.
Beachten Sie, dass die Formelsyntax Col Mean () und Col Std Dev () nur eine Spaltenreferenz benötigen.
Meine Faustregel: Wenn ich eine Variable in einer Formel verwende, verwende ich Column () [] oder ref [] oder alternativ As Column (Column (txt)), AsColumn (ref).
Names Default To Here( 1 );
exdt = Open( "$SAMPLE_DATA/Big Class.jmp" );
show( exdt:height[1] + :height[2] + Column( "height" )[3] ); //
txt = "weight";
cnme = column(txt); //column ref
exdt[[7,13, 15],txt] = empty();
exdt << get rows where(IsMissing(Column(txt)[]));
exdt << get rows where(IsMissing(As Column(Column(txt))));
exdt << get rows where(IsMissing(cnme)); // will throw an error
exdt << get rows where(IsMissing(cnme[])); //refers to the column values
exdt << get rows where(IsMissing(As Column(cnme))); // will throw an error
show(Col Mean(Column(txt)));
exdt << New Column("MyNewCol "||txt, Formula( ( Column(txt)[] - Col Mean(Column(txt)) )/ Col Std Dev(Column(txt)) ) );