Hola comunidad JMP,
He generado múltiples fórmulas de predicción almacenadas en columnas y necesito extraer los parámetros para evaluar qué variables son comunes entre las fórmulas.
Cuando llamo a dt:Column X << Obtener fórmula, el resultado es no una cadena o lista que se puede utilizar con funciones de extracción de patrones estándar (por ejemplo, Words (), Munger ()...).
Preguntas:
- ¿Estoy usando la función correcta para recopilar los parámetros de la fórmula usando << Obtener fórmula?
- Si no, ¿cuál sería una función más apropiada?
- En caso afirmativo, ¿existe algún truco para convertir el resultado de la fórmula << Obtener en una cadena, lista o matriz?
Gracias por su ayuda.
Mejor,
TS
Voy a documentar otro enfoque para esto aquí. (Gracias a @Byron_JMP para el tutorial de Arg() sobre esto)
Puede utilizar un comando Arg() para obtener los parámetros como una lista con la que puede trabajar con bastante facilidad. También puse una función a continuación que devuelve los parámetros para una fórmula de columna como una matriz asociativa.
// 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);
Y la Función que devuelve los parámetros de la fórmula como una matriz asociativa
// 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 );Si el interés está en los nombres de las variables dentro de la fórmula, podría ser más fácil trabajar directamente con la expresión de la fórmula. A continuación se muestra un ejemplo que extrae nombres de símbolos únicos de una fórmula.
dt = open("$sample_data/Reliability/Locomotive.jmp");
ex = column(dt, 3)<<GETFORMULA></GETFORMULA>Al ser bastante "de la vieja escuela", lo manejo recuperando la fórmula como una cadena de caracteres.
Names Default To Here( 1 );
dt = Current Data Table();
x = Char( dt:predicted height << get formula );