Nome della colonna da stringaCiao a tutti,
Sto lavorando su uno script in cui vorrei utilizzare una stringa come nome di colonna e utilizzare quel nome di colonna in una formula, vedere di seguito:
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));Quando lo utilizzo, tuttavia, non vede "klaatu barada nikto" come una colonna valida, anche se l'abbiamo creata prima.
Da altri post ho visto che la funzione column() può essere utilizzata per assegnare una stringa a una colonna e l'ho già utilizzata in questo modo, ma in questo caso non funziona. Alla fine tutto ciò che otteniamo è questo:

Qualcuno conosce una soluzione alternativa per questo? Grazie per qualsiasi aiuto in anticipo!
Modellazione statistica avanzataAutomazione e scriptingProgettazione di esperimentiRi: Nome della colonna da una stringaSe ho capito bene cosa vuoi, potresti provare ad aggiungere Nome Espr
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))));

Ri: Nome della colonna da una stringaJarmo,
Sto utilizzando lo stesso approccio in uno dei miei script e ho riscontrato un problema: la formula nella nuova colonna avrà la colonna "a" come questa:
Formula(As Column("klaatu barada nikto")*:Y)il che significa che se il nome di quella colonna cambia (e nel mio caso cambia) questa formula non sarà più valida. Devo in qualche modo fare riferimento a non come Come Colonna("nome") ma come :nome - Come posso farlo?
</CODE><CODE class=" language-jsl">
</CODE></P><P> </P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-393062" slang="en-US" mode="NONE">Ri: Nome della colonna da una stringa</LINGO-SUB><LINGO-BODY id="lingo-body-393062" slang="en-US" mode="NONE"><P>Fantastico! Grazie mille per il vostro aiuto.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-393057" slang="en-US" mode="NONE">Ri: Nome della colonna da una stringa</LINGO-SUB><LINGO-BODY id="lingo-body-393057" slang="en-US" mode="NONE"><P>Guarda questo<A href="https://community.jmp.com/t5/JSL-Cookbook/Insert-one-expression-into-another-using-Eval-Insert-Eval-Expr/ta-p/48998" target="_blank"> Inserisci un'espressione in un'altra utilizzando Eval Insert, Eval Expr, Parse e 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))));