Nombre de columna de cadenaHola a todos,
Estoy trabajando en un script en el que me gustaría usar una cadena como nombre de columna y usar ese nombre de columna en una fórmula; consulte a continuación:
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));Sin embargo, cuando uso esto, no ve "klaatu barada nikto" como una columna válida, aunque la creamos antes.
En otras publicaciones he visto que la función column() se puede usar para asignar una cadena a una columna y la he usado de esta manera antes, pero en este caso no funciona. Todo lo que terminamos con esto es:

¿Sabe alguien una solución para esto? ¡Gracias por cualquier ayuda de antemano!
Modelado estadístico avanzadoAutomatización y secuencias de comandosDiseño de experimentosRe: Nombre de columna de cadenaSi entiendo correctamente lo que quieres, puedes intentar agregar 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: Nombre de columna de cadenajarmo,
Estoy usando el mismo enfoque en uno de mis scripts y me encontré con un problema: la fórmula en la nueva columna tendrá esa columna "a" como esta:
Formula(As Column("klaatu barada nikto")*:Y)lo que significa que si el nombre de esa columna cambia (y en mi caso cambia), esta fórmula dejará de ser válida. Necesito hacer referencia a él de alguna manera, no como Como columna ("nombre") pero como :nombre - ¿Alguna forma de hacer esto?
</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: Nombre de columna de cadena</LINGO-SUB><LINGO-BODY id="lingo-body-393062" slang="en-US" mode="NONE"><P>¡Fantástico! Muchas gracias por tu ayuda.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-393057" slang="en-US" mode="NONE">Re: Nombre de columna de cadena</LINGO-SUB><LINGO-BODY id="lingo-body-393057" slang="en-US" mode="NONE"><P>Mira esto<A href="https://community.jmp.com/t5/JSL-Cookbook/Insert-one-expression-into-another-using-Eval-Insert-Eval-Expr/ta-p/48998" target="_blank"> Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y 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))));