ordenación de valores: uso de JSL para establecer propiedades de columnaHola
Necesito algunos consejos sobre secuencias de comandos, ya que hubo cambios en las propiedades de la columna de JMP14 a JMP15 con respecto al orden de valores, introduciendo "orden personalizado".
El siguiente script funciona bien en JMP 14 y el resultado se puede ver comprobando las propiedades de la columna
Summarize( g = by( :BatchVO ), m = Mean( :name("Timestamp") ) );
// JMP 14 Script for value ordering column "BatchVO" in the Order of the values in column "Timestamp"
:BatchVO << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
El script anterior funciona en JMP15 pero el resultado no es visible en las propiedades de la columna, supongo, debido al nuevo "orden personalizado".
¿Alguien sabe cómo cambiar esto para que funcione? y el resultado visible en las propiedades de la columna en JMP15?
Lo siguiente no funciona.
Summarize( g = by( :BatchVO ), m = Mean( :name("Timestamp") ) );
//JMP15 Script
:BatchVO << Set Property( "Value Order", {Custom Order(Eval( g[Rank Index( m )] ))} );¿Alguna idea sobre el script JSL correcto para JMP15 y superior?
@martindemel
Automatización y secuencias de comandosRe: ordenación de valores: uso de JSL para establecer propiedades de columnafoto1

pic2

Re: ordenación de valores: uso de JSL para establecer propiedades de columnaHola Jim, estoy lidiando con un problema similar con el formato de orden de valor en el script; Necesito poder desmarcar el pedido del cliente y mantenerlo en el nivel de pedido de Fila por tabla de datos. tu ayuda es muy apreciada
Aquí está la parte del script donde selecciono las columnas para apilarlas.
dt = Current Data Table();
dt1 = Data Table( dt ) << Stack(
columns( :Data Target, :Data1, :Data2, :Data3, :Data4, :Data5, :Best Data, ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Drop All Other Columns( 1 ),
);
Cuando ejecuto mi secuencia de comandos, obtengo el gráfico con datos ordenados alfabéticamente, vea la imagen 1 donde muestra los mejores datos a la izquierda
Quiero tener el orden de valor de tal manera que
1) Podría anular la selección de la casilla Pedido del cliente
2) Verifique los niveles de orden de las filas
de esta manera, el gráfico viene en el mismo orden en la tabla de pila que en la imagen 2, donde el objetivo de datos se encuentra en el extremo izquierdo del gráfico.
Gracias
Sam
Re: ordenación de valores: uso de JSL para establecer propiedades de columnaLa columna a la que intenta aplicar límites de especificación es de un tipo de datos de caracteres., Necesitas cambiarlo a numérico.Re: ordenación de valores: uso de JSL para establecer propiedades de columnaVer mensaje de error adjunto.

Re: ordenación de valores: uso de JSL para establecer propiedades de columna¿Cuál es el mensaje de error en el registro?Re: ordenación de valores: uso de JSL para establecer propiedades de columna¿Pueden ayudarme con esto? Funciona bien con V13, pero cuando actualizo a V15 todavía aparece un error al establecer los límites de especificaciones.
por cierto, la función de esto es fusionar 2 o más archivos csv usando la fila 3 a la 5 como especificaciones. ¡Gracias!
Re: ordenación de valores: uso de JSL para establecer propiedades de columnaDespués de comentar su línea Agregar código de gráficos (no incluyó el objeto dlgStatus), su código funcionó bien para mis datos de muestra.Entonces, si no funciona para su código, sospecho que hay una falta de coincidencia entre el nombre de las columnas en su tabla de datos y la columna de descripción en su vista.
Names Default To Here( 1 );
datatable = Open( "$SAMPLE_DATA/big class.jmp" );
spectable = New Table( "specs",
Add Rows( 2 ),
New Column( "Description", Character, "Nominal", Set Values( {"height", "weight"} ) ),
New Column( "LSL", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [52, 61] ) ),
New Column( "USL", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [70, 175] ) ),
New Column( "Units", Character, "Nominal", Set Values( {"Inches", "Pounds"} ), Set Display Width( 56 ) )
);
For( r = 1, r <= N Rows( spectable ), r++,
specname = spectable:Description[r];
Try(
dtcol = Column( datatable, specname ),
//write("No data for \!"" || specname|| "\!"");
Continue()
);
//write("Setting spec for \!"" || specname|| "\!"\!r");
If( Not( Is Missing( spectable:LSL[r] ) ) | Not( Is Missing( spectable:USL[r] ) ),
Eval(
Substitute(
Expr(
dtcol << Set Property( "Spec Limits", {LSL( _L ), USL( _U ), Show Limits( 1 )} )
),
Expr( _L ), spectable:LSL[r],
Expr( _U ), spectable:USL[r]
)
)
);
If( spectable:Units[r] != "",
Eval( Substitute( Expr( dtcol << Set Property( "Units", _U ) ), Expr( _U ), spectable:Units[r] ) )
);
progress = Floor( (r / N Rows( spectable )) * 100 );
//dlgStatus[FrameBox( 1 )] << Add Graphics Script( {Fill Color( "blue" ), Rect( 0, 1, progress, 0, 1 )} );
Wait( 0.001 );
);Re: ordenación de valores: uso de JSL para establecer propiedades de columnaQue tal este. Estoy atascado en Establecer propiedad para límites de especificación. Gracias por tu ayuda
for (r = 1, r <= N Rows(spectable), r++,
specname = spectable:Description[r];
try(
dtcol = Column(datatable, specname);
,
//write("No data for \!"" || specname|| "\!"");
Continue()
);
//write("Setting spec for \!"" || specname|| "\!"\!r");
if(not(ismissing(spectable:LSL[r])) | not(ismissing(spectable:USL[r])),
eval(substitute(expr(dtcol << Set Property("Spec Limits", {LSL(_L), USL(_U), Show Limits(1)})),
expr(_L), spectable:LSL[r],
expr(_U), spectable:USL[r]
));
);
if(spectable:Units[r] != "",
eval(substitute(expr(dtcol << Set Property("Units", _U)),
expr(_U), spectable:Units[r]
));
);
progress = floor((r / N Rows(spectable)) * 100);
dlgStatus[FrameBox(1)] << Add Graphics Script({Fill Color("blue"),Rect(0,1,progress,0,1)});
wait(0.001);
);Re: ordenación de valores: uso de JSL para establecer propiedades de columnaMuchas gracias.
Ahora es visible en el menú de propiedades de la columna - genial.Re: ordenación de valores: uso de JSL para establecer propiedades de columnaLos valores devueltos por su Resumen para la variable "g" se devuelven como cadenas de caracteres, y está intentando aplicar valores de cadena de caracteres a una columna numérica
El siguiente código parece hacer lo que quieres
names default to here(1);
Summarize( g = by( :BatchVO ), m = Mean( :name("Timestamp") ) );
for(i=1,i<=nitems(g),i++,
g[i]=num(g[i])
);
//JMP15 Script
eval(substitute(expr(:BatchVO << Set Property( "Value Order", {Custom Order(__list__)} );),
expr(__list__), g[Rank Index( m )] ));