<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Me gustaría crear una matriz asociativa a partir de valores de columna.Tengo curiosidad por saber si alguien en la comunidad JMP tiene una solución inteligente.Estoy usando JMP10. A continuación se muestra un ejemplo.
// Para la siguiente tabla de datos:
ejemplo = Nueva tabla ("Datos de ejemplo", Agregar filas (27), Nueva columna ("Lote", Carácter, Nominal, Establecer valores (
{"A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", " B", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C", "C", "C" , "C", "C"}
) ), Nueva columna ("Prueba", Carácter, Nominal, Establecer valores (
{"Prueba1", "Prueba1", "Prueba1", "Prueba2", "Prueba2", "Prueba2", "Prueba3", "Prueba3", "Prueba3", "Prueba1", "Prueba1", "Prueba1", " Prueba2", "Prueba2", "Prueba2",
"Prueba3", "Prueba3", "Prueba3", "Prueba1", "Prueba1", "Prueba1", "Prueba2", "Prueba2", "Prueba2", "Prueba3", "Prueba3", "Prueba3"}
) ), Nueva columna ("Parámetro", Carácter, Nominal, Establecer valores (
{"Param1", "Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2", "Param3", " Param1",
"Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2 ",
"Param3"} ) ), Nueva columna ("Rendimiento", Numérico, Continuo, Formato ("", 16 ),
Establecer valores ([1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0] )
), Nueva columna( "Código de defecto", Carácter, Nominal, Fórmula( If( :Rendimiento == 0, :Prueba || "_" || :Parámetro ) ) ) );
// Me gustaría crear una matriz asociativa con clave = Lote y valores = Códigos de defectos.Por favor, vea el ejemplo a continuación.
// ¿Cuál es la mejor manera de escribir esto?
// Como beneficio adicional, ¿es posible crear una matriz asociativa con múltiples niveles (IE: Lote => Prueba => Parámetro => Código de defecto)?
Defectos = matriz asociativa (ejemplo: lote);
Defectos["A"] = {"Test1_Param3", "Test2_Param2", "Test2_Param3", "Test3_Param2"};
Defectos["B"] = {"Test1_Param1", "Test1_Param2", "Test1_Param3", "Test2_Param2", "Test3_Param2", "Test3_Param3"};
Defectos["C"] = {"Test1_Param2", "Test1_Param3", "Test2_Param3", "Test3_Param3"};
// ¡Gracias por la ayuda!
Si alguien tiene curiosidad:
Defectos = Matriz Asociativa( :Lote );
currentkey1 = Defectos << Primero;
For( i = 1, i <= N Elementos( Defectos ), i++,
valores1 = Matriz asociativa( :Prueba[ejemplo << Obtener filas donde( :Lote == claveactual1 )] );
Defectos[claveactual1] = valores1;
currentkey2 = Defectos[currentkey1] << Primero;
For( j = 1, j <= N Elementos( Defectos[currentkey1] ), j++,
valores2 = :Código de defecto[ejemplo << Obtener filas donde( :Lote == claveactual1 & :Prueba == claveactual2 & :Rendimiento == 0 )];
Defectos[claveactual1][claveactual2] = valores2;
nextkey2 = Defectos[currentkey1] << Siguiente( currentkey2 );
tecla2 actual = tecla2 siguiente;
);
nextkey1 = Defectos << Next( currentkey1 );
claveactual1 = siguienteclave1;
);
Mostrar (Defectos);
Descubrí cómo cree una matriz asociativa con clave = Lote y valores = Códigos de defectos .
Tengo curiosidad por saber si hay algún consejo sobre matrices asociativas con múltiples niveles.¡Gracias!
Defectos = matriz asociativa (ejemplo: lote);
currentkey = Defectos << Primero;
For( i = 1, i <= N Elementos( Defectos ), i++,
valores = :Código de defecto[ejemplo << Obtener filas donde( :Lote == clave actual & :Rendimiento == 0 )];
Defectos[clave actual] = valores;
nextkey = Defectos << Next( currentkey );
tecla actual = tecla siguiente;
);
Mostrar (Defectos);