Consentire a funzioni come Dispatch di accettare variabili stringa o espressioniAlcune funzioni accettano solo argomenti di testo tra virgolette, il che è fastidioso quando si generano un gran numero di grafici o tabelle utilizzando uno script.
Sarebbe bello se qualcosa come il seguente funzionasse:
// 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 )}
))));
Invece, devo usare un codice contorto come questo -
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 )}
))))));
Funziona con questo problema di cui sono a conoscenza: Dispatch, As Column,: Name
ScriptingRi: Consenti a funzioni come Dispatch di accettare variabili stringa o espressioniGrazie per l'input e sì, hai ragione su Nuova colonna. Ho modificato il mio post originale per chiarezza.
Ri: Consenti funzioni come Dispatch, Formula, As Column, ecc. per accettare variabili stringa o esprimereEsprimo il mio voto con te riguardo a Dispatch. Tuttavia, alcune delle tue affermazioni non sono vere. La nuova colonna non richiede un Espr.
Attualmente, la funzione As Column () accetta solo un nome di colonna come argomento. Anche se Col << get name restituisce una stringa, da quanto mi risulta non è un nome di oggetto.
Le versioni precedenti di JMP non avevano As Column (). Colonna (txt) potrebbe e può essere utilizzato in una formula se si tratta di una formula Colonna come Col Mean (). Tuttavia, poiché la maggior parte delle formule di colonna vengono eseguite per riga per fare riferimento ai valori di riga, la formula richiedeva la sintassi Colonna (txt) [] o Colonna (#) []. Credo che AsColumn () sia stato creato per fare riferimento ai valori vettoriali.
Dato che sono un pessimo dattilografo, mi piace ancora usare la sintassi delle parentesi quadre sinistra e destra a destra della colonna (txt) []. Sono solo 2 caratteri equivalenti a "As"! Sto postando questo messaggio non per cancellare o discutere la tua voce della lista dei desideri, ma per fornire una semplice alternativa ora.
Nota che la sintassi della formula, Col Mean () e Col Std Dev () richiedono solo un riferimento di colonna.
La mia regola pratica, se utilizzo una variabile in una formula, usa Column () [] o ref [] o alternativamente 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)) ) );