Autoriser des fonctions telles que Dispatch à accepter des variables ou des expressions de chaîneCertaines fonctions n'acceptent que des arguments de texte entre guillemets, ce qui est ennuyeux lors de la génération d'un grand nombre de tracés ou de tableaux à l'aide d'un script.
Ce serait bien si quelque chose comme ce qui suit fonctionnait -
// 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 )}
))));
Au lieu de cela, je dois utiliser un code compliqué comme celui-ci -
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 )}
))))));
Fonctions avec ce problème dont j'ai connaissance - Dispatch, As Column, :Name
Automatisation et scriptsRe: Autoriser les fonctions telles que Dispatch à accepter des variables de chaîne ou des expressionsMerci pour votre contribution, et oui, vous avez raison à propos de Nouvelle colonne. J'ai modifié mon message original pour plus de clarté.
Re: Autoriser les fonctions telles que Dispatch, Formula, As Column, etc. pour accepter des variables de chaîne ou exprimerJe voterai avec vous concernant Dispatch. Cependant, certaines de vos affirmations ne sont pas vraies. La nouvelle colonne ne nécessite pas d'expr.
Actuellement, la fonction As Column () prend uniquement un nom de colonne comme argument. Même si Col << get name renvoie une chaîne, je crois comprendre que ce n'est pas un nom d'objet.
Les versions antérieures de JMP n'avaient pas As Column (). Column (txt) pourrait, et peut, être utilisé dans une formule s'il s'agit d'une formule de colonne comme Col Mean (). Cependant, puisque la plupart des formules de colonne sont exécutées par ligne pour faire référence aux valeurs de ligne, la formule nécessitait la syntaxe Column (txt) [] ou Column (#) []. Je crois que AsColumn () a été créé pour référencer les valeurs vectorielles.
Puisque je suis un horrible dactylo, j'aime toujours utiliser la syntaxe entre crochets gauche et droite à droite de Column (txt) []. Il n'y a que 2 caractères identiques à "As"! Je publie ceci non pas pour annuler ou faire valoir votre article de liste de souhaits, mais pour fournir une alternative simple maintenant.
Notez que la syntaxe de la formule, Col Mean () et Col Std Dev () n'ont besoin que d'une référence de colonne.
Ma règle d'or, si j'utilise une variable dans une formule, utilisez Column () [] ou ref [] ou alternativement 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)) ) );