Recodificar múltiples variables en una columna y recordarlas como un scriptBien, comencé a familiarizarme con JMP y trabajé con éxito en mi primer script para extraer, reorganizar y formatear una tabla de datos de una base de datos. Funciona bien y ahorra tiempo. Como he desarrollado este script con una copia de Vaya a JMP Scripting en mi regazo, estaba naturalmente interesado en comprender el guión. Entonces aquí viene el problema.
Piense en un proceso de fabricación que requiera muchas medidas diferentes. La base de datos tiene todos los métodos de prueba en una columna y todos los resultados de las pruebas en otra columna. Para obtener lo que quiero, necesito dividir esta tabla. Sin embargo, dado que gran parte de lo que tenemos en la base de datos proviene de archivos de Excel heredados, se requiere cierta recodificación de la columna que contiene los nombres de las pruebas debido a entradas erróneas anteriores. Para llegar a ese fragmento de (re) código, fui a través de Recode ... en el menú Columnas, y es el único fragmento del script que no puedo entender. (Generalmente es un guión muy básico).
En el ejemplo publicado a continuación, las letras mayúsculas y los números reflejan variaciones del nombre del método de prueba real utilizado. Por ejemplo, A es una prueba (por ejemplo, prueba de pH), B es otra prueba (por ejemplo, viscosidad). A (1), A (2), ... A (n) todos se recodificarían en A, luego B (1), ... B (n) a B, y así sucesivamente. Ahora bien, ¿cómo funciona el software ahora de exactamente este fragmento de código cuyas variables pertenecen juntas? Revisé la guía de secuencias de comandos y el índice de secuencias de comandos, pero todavía no entiendo. _rcOrig y _rcNow, ¿qué significan? La secuencia de comandos, es decir, filas y columnas, están organizadas exactamente como están en mi copia de la secuencia de comandos completa.
Gracias por una respuesta.
dt << Recode Column(
dt:TestName,
{Map Value(
_rcOrig,
{"A(1)", "A(2)",
"A(3)", "A(4)",
"A(5)", "A(6)", "B(1)",
"B(2)", "C(1)", "C(2)",
"C(3)", "C(4)", "D(1)", "D(2)", "E(1)",
"E(2)", "F(1)", "F(2)", "G(1)", "G(2)",
"H(1)", "H(2)", "I(1)", "I(2)",
"I(3)", "I(4)", "J(1)", "J(2)", "K(1)",
"K(2)", "L(1)", "L(2)",
"M(1)", "M(2)", "M(3)",
"M(4)"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;ScriptingRe: recodificar múltiples variables en una columna y recordarlas como un scriptCreé una nueva columna en una tabla de datos con los valores de prueba que tenía en el JSL que proporcionó.

Luego abrí el cuadro de diálogo Recodificar e hice los cambios de recodificación.

Luego fui al triángulo rojo y seleccioné
Script => Guardar en la ventana de script
y abajo está lo que me dio.
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
dt << Begin Data Update;
col1 = dt << New Column( dt:test );
col1 << Set Name( "test 2" );
dt << Move Selected Columns( {col1}, after( dt:test ) );
dt << Recode Column(
dt:test,
{Map Value(
_rcOrig,
{"A(1)", "A", "A(2)", "A", "A(3)", "A", "A(4)", "A", "A(5)", "A", "A(6)",
"A", "B(1)", "B", "B(2)", "B", "C(1)", "C", "C(2)", "C", "C(3)", "C", "C(4)",
"C", "D(1)", "D", "D(2)", "D", "E(1)", "E", "E(2)", "E", "F(1)", "F", "F(2)",
"F", "G(1)", "G", "G(2)", "G", "H(1)", "H", "H(2)", "H", "I(1)", "I", "I(2)",
"I", "I(3)", "I", "I(4)", "I", "J(1)", "J", "J(2)", "J", "K(1)", "K", "K(2)",
"K", "L(1)", "L", "L(2)", "L", "M(1)", "M", "M(2)", "M", "M(3)", "M", "M(4)",
"M"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
En el ejemplo, puede ver cómo se establecen los valores para cada uno de los pares valor / resultado
Re: recodificar múltiples variables en una columna y recordarlas como un scriptHola,
Si siempre es una letra, es posible que desee hacer una fórmula simple como esta:
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));
Re: recodificar múltiples variables en una columna y recordarlas como un scriptNo siempre es una letra. Las letras son solo marcadores de posición para "cualquier nombre de prueba". Sé cómo las pruebas van juntas, JMP no lo sabe a menos que yo lo diga. Me preguntaba cómo lo sabía JMP. Ahora lo hago. Creo que estoy ciego.