Script JSL para cambiar el nombre de la columna en la fórmula con la fórmula real de la columna correspondienteHola a todos
Intento automatizar el proceso en el que quiero cambiar el nombre de la columna en una fórmula (es decir, "Bajar 90% Indiv TiterHPLCProtA@D14" con la fórmula 'real' de esta columna (segunda imagen).
Quiero repetir este proceso para todos los nombres de columna dentro de la primera imagen.
El script necesitaría algo como:
- Encuentra todos los nombres de columna dentro de la primera fórmula
- Comience con el nombre de la primera columna
- Encuentre la columna correspondiente dentro de la tabla de datos y copie la fórmula
- reemplace el nombre de la columna en la primera fórmula con la fórmula de la columna
- repita este proceso hasta que todos los nombres de columna en la primera fórmula hayan sido reemplazados con su fórmula "real"
Fórmula de la primera columna

un ejemplo de la fórmula que quiero insertar en la fórmula de la primera columna, reemplazando "[...]TiterHPLCProtA[...]"

¡Mis mejores deseos!
/Marco
Investigación del Consumidor y del MercadoIngeniería de Calidad y ProcesosRe: Script JSL para cambiar el nombre de la columna en la fórmula con la fórmula real de la columna correspondiente¡Muchas gracias a ambos! ¡Eso era exactamente lo que estaba buscando!
Re: Script JSL para cambiar el nombre de la columna en la fórmula con la fórmula real de la columna correspondienteComo @pauldeen señaló que puede perfilar esto usando expandir fórmulas intermedias, pero puede ir un paso más allá y usar la opción de guardar fórmulas de fórmulas expandidas en ese generador de perfiles para resolver todas esas referencias en una nueva fórmula de columna.

Por ejemplo:
Names Default To Here( 1 );
dt = Open( "$Sample_data/iris.jmp" );
dt << New Column("Log[Petal width]", Numeric, "Continuous", Format("Best", 12), Formula(Log(:Petal width)));
dt << New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Formula(:Sepal length + :Sepal width + :"Log[Petal width]"n));
prof = Profiler(
Y( :Column 1 ),
Profiler(
1,
Term Value(
Sepal length( 6, Lock( 0 ), Show( 1 ) ),
Sepal width( 3.125, Lock( 0 ), Show( 1 ) ),
Petal width( 1.269, Lock( 0 ), Show( 1 ) )
)
),
Expand
);
col = prof << Save Expanded Formulas;
Si desea hacer esto mediante secuencias de comandos, tiene varias opciones.Comenzaría con un bucle for que buscaría una referencia de columna, verificaría si esa columna tiene una fórmula y luego usaría el comando de sustitución para insertarla.Pruébalo y publícalo aquí si te quedas atascado.
Re: Script JSL para cambiar el nombre de la columna en la fórmula con la fórmula real de la columna correspondientePuede hacer esto con algunas técnicas avanzadas de secuencias de comandos:
Tendrá que seguir el nombre de la columna a la columna,
Formula_expression = Column << get formula
Luego puede sustituir las referencias de columna con la expresión de la fórmula.
Así que busca en expr(), nombra expr() y sustitúyelo por into().
Si la única razón por la que hace esto es para el uso en Profiler, puede activar la casilla de verificación aquí:
