Ciao comunità JMP,
Ho generato più formule di previsione archiviate in colonne e devo estrarre i parametri per valutare quali variabili sono comuni tra le formule.
Quando chiamo dt:Column X << Ottieni formula, l'output è non una stringa o un elenco che può essere utilizzato con funzioni di estrazione di modelli standard (ad esempio, Words (), Munger ()...).
Domande:
- Sto utilizzando la funzione corretta per raccogliere i parametri della formula utilizzando << Ottieni formula?
- In caso contrario, quale sarebbe la funzione più appropriata?
- Se sì, esiste un trucco per convertire l'output << Ottieni l'output della formula in una stringa, un elenco o una matrice?
Grazie per l'aiuto.
Migliore,
TS
Documenterò un altro approccio a questo qui. (Grazie a @Byron_JMP per il tutorial Arg() su questo)
Puoi eseguire un comando Arg() per ottenere i parametri come un elenco con cui puoi lavorare abbastanza facilmente. Di seguito ho anche inserito una funzione che restituisce i parametri per una formula di colonna come array associativo.
// For a given column, col, in a data table, dt, you can get the formula column property with a message:
formula = dt:Col << Get Formula;
// the first argument of which is the parameters list which can be extracted using Arg()
params = Arg(formula, 1);
// from there you can index down to get the parameter / value pair
parameterName1 = Arg(params[1],1);
parameterValue1 = Arg(params[1],2);
E la funzione che restituisce i parametri della formula come array associativo
// This function expects a column reference
formulaParameters = Function( {colref},
{default local},
plist = Arg( colref << Get Formula, 1 );
keys = {};
values = {};
For Each( {value, index}, plist,
Insert Into( keys, Arg( value, 1 ) );
Insert Into( values, Arg( value, 2 ) );
);
parameters = Associative Array( keys, values );
);
// Usage example:
dt = Current Data Table();
columnWithParameters = dt:Col1 << Get Column Reference();
parameterAArray = formulaParameters( columnWithParameters );Se l'interesse è rivolto ai nomi delle variabili all'interno della formula, potrebbe essere più semplice lavorare direttamente con l'espressione della formula. Ecco un esempio che estrae nomi di simboli univoci da una formula.
dt = open("$sample_data/Reliability/Locomotive.jmp");
ex = column(dt, 3)<<GETFORMULA></GETFORMULA>Essendo piuttosto "vecchia scuola", lo gestisco recuperando la formula come una stringa di caratteri
Names Default To Here( 1 );
dt = Current Data Table();
x = Char( dt:predicted height << get formula );