Nom de colonne à partir d'une chaîneSalut tout le monde,
Je travaille sur un script dans lequel j'aimerais utiliser une chaîne comme nom de colonne et utiliser ce nom de colonne dans une formule, voir ci-dessous :
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
//example column
dt << New Column("klaatu barada nikto", formula(3));
//suppose we don't know what exactly will be in 'a' as it is controlled by a for loop etc.
a = Concat Items( {"klaatu", "barada", "nikto"}, " " );
//can we get another column to take 'a' as an input?
dt << New Column("Gort", formula(column(a)*:Y));Cependant, lorsque je l'utilise, "klaatu barada nikto" n'est pas considéré comme une colonne valide, même si nous l'avons créé auparavant.
Dans d'autres articles, j'ai vu que la fonction column() peut être utilisée pour attribuer une chaîne à une colonne et je l'ai déjà utilisée de cette manière, mais dans ce cas, cela ne fonctionne pas. Tout ce que nous obtenons est ceci :

Est-ce que quelqu'un connaît une solution de contournement pour cela? Merci d'avance pour toute aide!
Modélisation statistique avancéeAutomatisation et scriptsConception d'expériencesRe : Nom de colonne à partir d'une chaîneSi je comprends bien ce que vous voulez, vous pouvez essayer d'ajouter Name Expr
Names Default To Here(1);
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
//example column
dt << New Column("klaatu barada nikto", formula(3));
//suppose we don't know what exactly will be in 'a' as it is controlled by a for loop etc.
a = Concat Items( {"klaatu", "barada", "nikto"}, " " );
Eval(EvalExpr(dt << New Column("Gort", numeric, formula(Expr(Name Expr(As Column(a)))*:Y))));

Re : Nom de colonne à partir d'une chaîneJarmo,
J'utilise la même approche dans l'un de mes scripts et je suis tombé sur un problème : la formule dans la nouvelle colonne aura cette colonne "a" comme ceci :
Formula(As Column("klaatu barada nikto")*:Y)ce qui signifie que si le nom de cette colonne change (et dans mon cas, il change), cette formule deviendra invalide. Je dois en quelque sorte y faire référence, pas comme En tant que colonne ("nom") mais comme :nom - un moyen de faire ça ?
</CODE><CODE class=" language-jsl">
</CODE></P><P> </P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-393062" slang="en-US" mode="NONE">Re : Nom de colonne à partir d'une chaîne</LINGO-SUB><LINGO-BODY id="lingo-body-393062" slang="en-US" mode="NONE"><P>Fantastique! Je vous remercie beaucoup pour votre aide.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-393057" slang="en-US" mode="NONE">Re : Nom de colonne à partir d'une chaîne</LINGO-SUB><LINGO-BODY id="lingo-body-393057" slang="en-US" mode="NONE"><P>Regarde ça<A href="https://community.jmp.com/t5/JSL-Cookbook/Insert-one-expression-into-another-using-Eval-Insert-Eval-Expr/ta-p/48998" target="_blank"> Insérez une expression dans une autre à l'aide d'Eval Insert, Eval Expr, Parse et Substitute</A></P><P> </P><PRE><CODE class=" language-jsl">dt = Open( "$SAMPLE_DATA/Cities.jmp" );
//example column
dt << New Column("klaatu barada nikto", formula(3));
//suppose we don't know what exactly will be in 'a' as it is controlled by a for loop etc.
a = Concat Items( {"klaatu", "barada", "nikto"}, " " );
//can we get another column to take 'a' as an input?
Eval(EvalExpr(dt << New Column("Gort", numeric, formula(ascolumn(expr(a))*:Y))));