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 Saltar a secuencias de comandos JMP en mi regazo, estaba naturalmente interesado en entender el guión. Así que 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, es necesario volver a codificar la columna que contiene los nombres de las pruebas debido a entradas anteriores erróneas. Para llegar a esa pieza de (re) código, fui a través de Recode... en el menú Columnas, y es la única pieza en el script que no puedo entender. (Por lo general, 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) se recodificaría en A, luego B (1), ... B(n) a B, y así sucesivamente. Ahora, ¿cómo sabe el software exactamente a partir de este fragmento de código qué variables van juntas? Revisé la guía de secuencias de comandos y el índice de secuencias de comandos, pero aún no entiendo. _rcOrig y _rcAhora, ¿qué significan? La secuencia de comandos, es decir, las variables en sus respectivas filas se organizan 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;
Fusión y limpieza de datosRe: Recodificar múltiples variables en una columna y recordarlas como un scriptSomos bendecidos de tenerte en esta comunidad. Gracias. Solo repasé el guión original y me planteé cuándo tener la próxima cita con mi óptico.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 sabía JMP. Ahora lo hago. Creo que estoy ciego.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 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é
Guión=>Guardar en ventana de guión
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