JMP > JSL > Formel abrufen > Parameter extrahierenHallo JMP-Community,
Ich habe mehrere in Spalten gespeicherte Vorhersageformeln generiert und muss die Parameter extrahieren, um zu bewerten, welche Variablen in allen Formeln gemeinsam sind.
Wenn ich „dt:Column X << Get Formula“ aufrufe, lautet die Ausgabe nicht eine Zeichenfolge oder Liste, die mit Standardfunktionen zur Musterextraktion verwendet werden kann (z. B. Words(), Munger()...).
Fragen:
- Verwende ich die richtige Funktion, um die Formelparameter zu sammeln, indem ich << Formel abrufen verwende?
- Wenn nicht, welche Funktion wäre geeigneter?
- Wenn ja, gibt es einen Trick, um die Ausgabe der << Get-Formel in eine Zeichenfolge, eine Liste oder eine Matrix umzuwandeln?
Ich danke Ihnen für Ihre Hilfe.
Am besten,
TS
Datenexploration und -visualisierungBetreff: JMP > JSL > Formel abrufen > Parameter extrahierenIch werde hier einen anderen Ansatz dazu dokumentieren. (Dank an @Byron_JMP für das Arg()-Tutorial dazu)
Sie können einen Arg()-Befehl ausführen, um die Parameter als Liste zu erhalten, mit der Sie ganz einfach arbeiten können. Ich habe unten auch eine Funktion eingefügt, die die Parameter für eine Spaltenformel als assoziatives Array zurückgibt.
// 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);
Und die Funktion, die die Formelparameter als assoziatives Array zurückgibt
// 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 );Betreff: JMP > JSL > Formel abrufen > Parameter extrahierenHallo Txnelson,
Das war einfach.
Danke.
Am besten,
TS
Betreff: JMP > JSL > Formel abrufen > Parameter extrahierenWenn das Interesse an den Variablennamen innerhalb der Formel liegt, ist es möglicherweise einfacher, direkt mit dem Formelausdruck zu arbeiten. Hier ist ein Beispiel, das eindeutige Symbolnamen aus einer Formel extrahiert.
dt = open("$sample_data/Reliability/Locomotive.jmp");
ex = column(dt, 3)<<GETFORMULA></GETFORMULA>Betreff: JMP > JSL > Formel abrufen > Parameter extrahierenDa ich ziemlich „Old School“ bin, erledige ich das, indem ich die Formel als Zeichenfolge abrufe
Names Default To Here( 1 );
dt = Current Data Table();
x = Char( dt:predicted height << get formula );