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 valor - 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
Tabla de datosScriptingRe: orden de valor - uso de JSL para establecer propiedades de columnaLos valores devueltos de 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.Re: orden de valor - uso de JSL para establecer propiedades de columnaMuchas gracias.
Ahora está visible en el menú de propiedades de la columna, genial.Re: orden de valor - uso de JSL para establecer propiedades de columnaQue tal este. Estoy atascado en Establecer propiedad para límites de especificaciones. 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: orden de valor - 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 discrepancia entre el nombre de las columnas en su tabla de datos y la columna de descripción en su espectáculo.
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: orden de valor - uso de JSL para establecer propiedades de columna¿Me pueden ayudar con esto? Está funcionando bien con V13, pero cuando actualizo a V15 todavía aparece un error al establecer límites de especificaciones.
Por cierto, la función de esto es fusionar 2 o más archivos csv usando la 3ª a la 5ª fila como especificaciones. ¡Gracias!
Re: orden de valor - uso de JSL para establecer propiedades de columna¿Cuál es el mensaje de error en el registro?Re: orden de valor - uso de JSL para establecer propiedades de columnaLa columna a la que está intentando aplicar los límites de especificación es de un tipo de datos de caracteres. Debe cambiarlo a numérico.Re: orden de valor - uso de JSL para establecer propiedades de columnaVer mensaje de error adjunto.
