Ordenación de valores en JMP Script por una variable<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
En mi conjunto de datos, usaré una columna, llamada Conjunto, como mi variable del eje x en un gráfico de barras.Quiero que se clasifiquen en orden desde el valor de respuesta más pequeño hasta el valor de respuesta más grande para tener barras que aumentan de longitud.Por ejemplo si tengo los siguientes datos:
Establecer respuesta
un 5
B-7
C 10
Me gustaría que el orden en el gráfico de barras fuera B, A, C.Obviamente puedo establecer la propiedad de esta manera:
Establecer < {"B", "A", "C"}), pero estoy tratando de hacer esto sin necesidad de codificar los nombres.Me gustaría poder ordenar el valor POR una variable, específicamente por mi respuesta.Quiero que este sea un script estándar que pueda aplicar a múltiples conjuntos de datos sin necesidad de cambiarlo una y otra vez.
Saludos,
Miguel.
Re: Ordenación de valores en JMP Script por una variableFYI para JMP 16 para agregar orden de valor Tuve que cambiar el formato a:
:col << Set Property(
"Value Ordering",
Eval(myList)
);
Re: Ordenación de valores en JMP Script por una variableEn el primer caso, la lista contiene solo nombres de variables. La lista de evaluación simplemente evalúa cada variable. En el segundo caso, la lista contiene cosas (LSL, USL, Target) que solo tienen sentido en el contexto del mensaje Establecer propiedad como un todo. Eval List no conoce ese contexto, por lo que no sabe qué hacer con lo primero que ve: LSL. Para ese caso, tendrá que usar la expresión más compleja que resolvió para el otro caso.
lLimit = 55;
uLimit = 70;
tLimit = 62.5;
Eval(
Eval Expr(
:height << Set Property(
"Spec Limits",
{LSL( Expr( lLimit ) ), USL( Expr( uLimit ) ), Target( Expr( tLimit ) )}
)
)
);Re: Ordenación de valores en JMP Script por una variable¡Excelente! Veo que funciona para este caso. Pero en el caso de los límites de especificación, ¿esa lista no evalúa? Recibo un error de que no parece gustarle el argumento LSL al evaluar la lista.
límite = 55 ;
uLímite = 70 ;
tLímite = 62.5 ;
:altura << Establecer propiedad ( "Límites de especificaciones" ,
Lista de evaluación ({LSL(lLimit), USL(uLimit), Target(tLimit)}));
Re: Ordenación de valores en JMP Script por una variableO puede usar Eval List para evaluar a todos los miembros de una lista:
:sex << Set Property("Value Ordering",Eval List({my1,my2}));Re: Ordenación de valores en JMP Script por una variableEstoy respondiendo a este hilo debido a un problema similar para el pedido de valor.Todavía no sé cuándo usar Expr y Eval Expr para las propiedades de columna en JSL para JMP 12 o JMP 13. Parece que la forma general debería funcionar:
: Colocar << Establecer propiedad ( "Orden de valor" , evaluar ( {mi lista} ) ) ;
: Colocar << Establecer propiedad ( "Orden de valor" , evaluar ( {mi1,mi2} ) ) ;
En los datos de Big Class, intente configurar la columna :sex para poner "M" antes de "F":
mi1 = "METRO" ;
mi2 = "F" ;
: sexo << Establecer propiedad ( "Orden de valor" , Evaluar( { mi1 , mi2 })) ;
Pero pone en el texto "my1" y "my2" en lugar de "M" y "F".
Copié la publicación sobre cómo agregar límites de especificación como una propiedad de columna. http://www.jmp.com/support/notes/46/953.html
Parece que tiene que usar Expr y Eval Expr solo para que se muestren las variables de caracteres. Si prueba esta porción solamente:
: sexo << Establecer propiedad ( "Orden de valor" , { exp. ( mi1 ) , exp. ( mi2 )})
Obtiene el texto "Expr" y "Expr" en la propiedad de la columna. Si incluye Eval Expr con Expr, se le devuelve al registro la frase correcta.
Expr evaluación (
: sexo << Establecer propiedad ( "Orden de valor" , { exp. ( mi1 ) , exp. ( mi2 )})
) ;
devoluciones:
:sex << Establecer propiedad( "Valor de pedido", {"M", "F"} )
y finalmente todo este código establece la propiedad de la columna correctamente.
evaluar (
Expr evaluación (
: sexo << Establecer propiedad ( "Orden de valor" , { exp. ( mi1 ) , exp. ( mi2 )})
)
) ;
La explicación de la publicación de límites de especificación fue "la columna almacena la propiedad de la columna con los valores proporcionados sin evaluación o validación de los argumentos proporcionados. Para agregar propiedades de columna usando el código JSL que contiene variables, el script debe convertir cualquier variable a sus valores reales".
Re: Ordenación de valores en JMP Script por una variableEl siguiente enfoque es mejor (una línea divertida pero rara vez suficiente...). Debería funcionar incluso si hay empates y también si hay varios valores para cada nivel y el orden de los valores se va a basar, por ejemplo, en la respuesta media de cada nivel.
Resumir ( gramo = por ( : Colocar ) , metro = Significar ( : Respuesta ) ) ;
: Colocar << Establecer propiedad ( "Orden de valor" , evaluar ( gramo [ Índice de clasificación ( metro )] ) ) ;
Re: Ordenación de valores en JMP Script por una variableEste enfoque debería funcionar para el ejemplo anterior. Sin embargo, se me acaba de ocurrir que si dos o más niveles tienen exactamente la misma respuesta, fallará (solo se representará uno de los niveles empatados en la lista).
: Colocar << Establecer propiedad ( "Orden de valor" , evaluar ( matriz asociativa ( : Respuesta , : Colocar ) << obtener valores ) ) ;